gitextract_4u5zqd_x/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── build.yml │ └── license-checker.yml ├── .gitignore ├── .licenserc.yaml ├── AOSP-Checkstyles.xml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── build/ │ ├── pom.xml │ └── src/ │ ├── assembly/ │ │ └── src.xml │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── StartBootstrap.java │ └── resources/ │ ├── agent-to-cloud_1.0.properties │ ├── agent.properties │ ├── easeagent-log4j2.xml │ └── user-minimal-cfg.properties ├── config/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── config/ │ │ ├── AutoRefreshConfigItem.java │ │ ├── CompatibilityConversion.java │ │ ├── ConfigAware.java │ │ ├── ConfigFactory.java │ │ ├── ConfigLoader.java │ │ ├── ConfigManagerMXBean.java │ │ ├── ConfigNotifier.java │ │ ├── ConfigPropertiesUtils.java │ │ ├── ConfigUtils.java │ │ ├── Configs.java │ │ ├── GlobalConfigs.java │ │ ├── JarFileConfigLoader.java │ │ ├── OtelSdkConfigs.java │ │ ├── PluginConfig.java │ │ ├── PluginConfigManager.java │ │ ├── PluginProperty.java │ │ ├── PluginSourceConfig.java │ │ ├── ValidateUtils.java │ │ ├── WrappedConfigManager.java │ │ ├── report/ │ │ │ ├── ReportConfigAdapter.java │ │ │ └── ReportConfigConst.java │ │ └── yaml/ │ │ └── YamlReader.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── config/ │ │ ├── CompatibilityConversionTest.java │ │ ├── ConfigFactoryTest.java │ │ ├── ConfigPropertiesUtilsTest.java │ │ ├── ConfigUtilsTest.java │ │ ├── ConfigsTest.java │ │ ├── IPluginConfigConstTest.java │ │ ├── JarFileConfigLoaderTest.java │ │ ├── OtelSdkConfigsTest.java │ │ ├── PluginConfigManagerTest.java │ │ ├── PluginConfigTest.java │ │ ├── PluginPropertyTest.java │ │ ├── PluginSourceConfigTest.java │ │ ├── ValidateUtilsTest.java │ │ ├── report/ │ │ │ └── ReportConfigAdapterTest.java │ │ └── yaml/ │ │ └── YamlReaderTest.java │ └── resources/ │ ├── agent.properties │ ├── agent.yaml │ ├── easeagent_config.jar │ ├── user-spec.properties │ ├── user-spec2.properties │ └── user.properties ├── context/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── context/ │ │ ├── AsyncContextImpl.java │ │ ├── ContextManager.java │ │ ├── GlobalContext.java │ │ ├── ProgressFieldsManager.java │ │ ├── RetBound.java │ │ ├── SessionContext.java │ │ └── log/ │ │ ├── LoggerFactoryImpl.java │ │ ├── LoggerImpl.java │ │ └── LoggerMdc.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── context/ │ │ ├── AsyncContextImplTest.java │ │ ├── ContextManagerTest.java │ │ ├── GlobalContextTest.java │ │ ├── ProgressFieldsManagerTest.java │ │ ├── RetBoundTest.java │ │ ├── SessionContextTest.java │ │ └── log/ │ │ ├── LoggerFactoryImplTest.java │ │ ├── LoggerImplTest.java │ │ └── LoggerMdcTest.java │ └── resources/ │ └── log4j2.xml ├── core/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── core/ │ │ │ ├── AppendBootstrapClassLoaderSearch.java │ │ │ ├── Bootstrap.java │ │ │ ├── GlobalAgentHolder.java │ │ │ ├── config/ │ │ │ │ ├── CanaryListUpdateAgentHttpHandler.java │ │ │ │ ├── CanaryUpdateAgentHttpHandler.java │ │ │ │ ├── ConfigsUpdateAgentHttpHandler.java │ │ │ │ ├── PluginPropertiesHttpHandler.java │ │ │ │ ├── PluginPropertyHttpHandler.java │ │ │ │ └── ServiceUpdateAgentHttpHandler.java │ │ │ ├── health/ │ │ │ │ └── HealthProvider.java │ │ │ ├── info/ │ │ │ │ ├── AgentInfoFactory.java │ │ │ │ └── AgentInfoProvider.java │ │ │ ├── plugin/ │ │ │ │ ├── BaseLoader.java │ │ │ │ ├── BridgeDispatcher.java │ │ │ │ ├── CommonInlineAdvice.java │ │ │ │ ├── Dispatcher.java │ │ │ │ ├── PluginLoader.java │ │ │ │ ├── annotation/ │ │ │ │ │ ├── EaseAgentInstrumented.java │ │ │ │ │ └── Index.java │ │ │ │ ├── interceptor/ │ │ │ │ │ ├── InterceptorPluginDecorator.java │ │ │ │ │ ├── ProviderChain.java │ │ │ │ │ └── ProviderPluginDecorator.java │ │ │ │ ├── matcher/ │ │ │ │ │ ├── ClassLoaderMatcherConvert.java │ │ │ │ │ ├── ClassMatcherConvert.java │ │ │ │ │ ├── ClassTransformation.java │ │ │ │ │ ├── Converter.java │ │ │ │ │ ├── MethodMatcherConvert.java │ │ │ │ │ └── MethodTransformation.java │ │ │ │ ├── registry/ │ │ │ │ │ ├── AdviceRegistry.java │ │ │ │ │ └── PluginRegistry.java │ │ │ │ └── transformer/ │ │ │ │ ├── AnnotationTransformer.java │ │ │ │ ├── CompoundPluginTransformer.java │ │ │ │ ├── DynamicFieldAdvice.java │ │ │ │ ├── DynamicFieldTransformer.java │ │ │ │ ├── ForAdviceTransformer.java │ │ │ │ ├── TypeFieldTransformer.java │ │ │ │ ├── advice/ │ │ │ │ │ ├── AgentAdvice.java │ │ │ │ │ ├── AgentForAdvice.java │ │ │ │ │ ├── AgentJavaConstantValue.java │ │ │ │ │ ├── BypassMethodVisitor.java │ │ │ │ │ └── MethodIdentityJavaConstant.java │ │ │ │ └── classloader/ │ │ │ │ └── CompoundClassloader.java │ │ │ └── utils/ │ │ │ ├── AgentArray.java │ │ │ ├── ContextUtils.java │ │ │ ├── JsonUtil.java │ │ │ ├── MutableObject.java │ │ │ ├── ServletUtils.java │ │ │ └── TextUtils.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── services/ │ │ │ └── com.megaease.easeagent.plugin.bean.BeanProvider │ │ └── version.txt │ └── test/ │ └── java/ │ └── com/ │ └── megaease/ │ └── easeagent/ │ └── core/ │ ├── AppendBootstrapClassLoaderSearchTest.java │ ├── BootstrapTest.java │ ├── HttpServerTest.java │ ├── info/ │ │ └── AgentInfoFactoryTest.java │ ├── instrument/ │ │ ├── ClinitMethodTransformTest.java │ │ ├── NewInstanceMethodTransformTest.java │ │ ├── NonStaticMethodTransformTest.java │ │ ├── OrchestrationTransformTest.java │ │ ├── StaticMethodTransformTest.java │ │ ├── TestContext.java │ │ ├── TestPlugin.java │ │ └── TransformTestBase.java │ ├── matcher/ │ │ ├── ClassLoaderMatcherTest.java │ │ ├── ClassMatcherTest.java │ │ └── MethodMatcherTest.java │ ├── plugin/ │ │ └── PluginLoaderTest.java │ └── utils/ │ └── AgentAttachmentRule.java ├── doc/ │ ├── add-plugin-demo.md │ ├── benchmark.md │ ├── context.md │ ├── criteria-for-configuring-priorities.md │ ├── development-guide.md │ ├── how-to-use/ │ │ ├── megacloud-config.md │ │ ├── use-in-docker.md │ │ └── use-on-host.md │ ├── matcher-DSL.md │ ├── metric-api.md │ ├── plugin-unit-test.md │ ├── prometheus-metric-schedule.md │ ├── report-development-guide.md │ ├── spring-boot-3.x.x-demo.md │ ├── spring-boot-upgrade.md │ ├── spring-petclinic-demo.md │ ├── tracing-api.md │ └── user-manual.md ├── httpserver/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── megaease/ │ └── easeagent/ │ └── httpserver/ │ ├── HttpRequest.java │ ├── HttpResponse.java │ ├── IHttpHandler.java │ ├── IHttpServer.java │ ├── jdk/ │ │ ├── AgentHttpServerV2.java │ │ ├── RootContextHandler.java │ │ └── UriResource.java │ ├── nano/ │ │ ├── AgentHttpHandler.java │ │ ├── AgentHttpHandlerProvider.java │ │ └── AgentHttpServer.java │ └── nanohttpd/ │ ├── protocols/ │ │ └── http/ │ │ ├── ClientHandler.java │ │ ├── HTTPSession.java │ │ ├── IHTTPSession.java │ │ ├── NanoHTTPD.java │ │ ├── ServerRunnable.java │ │ ├── content/ │ │ │ ├── ContentType.java │ │ │ ├── Cookie.java │ │ │ └── CookieHandler.java │ │ ├── request/ │ │ │ └── Method.java │ │ ├── response/ │ │ │ ├── ChunkedOutputStream.java │ │ │ ├── IStatus.java │ │ │ ├── Response.java │ │ │ └── Status.java │ │ ├── sockets/ │ │ │ ├── DefaultServerSocketFactory.java │ │ │ └── SecureServerSocketFactory.java │ │ ├── tempfiles/ │ │ │ ├── DefaultTempFile.java │ │ │ ├── DefaultTempFileManager.java │ │ │ ├── DefaultTempFileManagerFactory.java │ │ │ ├── ITempFile.java │ │ │ └── ITempFileManager.java │ │ └── threading/ │ │ ├── DefaultAsyncRunner.java │ │ └── IAsyncRunner.java │ ├── router/ │ │ └── RouterNanoHTTPD.java │ └── util/ │ ├── IFactory.java │ ├── IFactoryThrowing.java │ ├── IHandler.java │ └── ServerRunner.java ├── loader/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ ├── EaseAgentClassLoader.java │ │ ├── JarCache.java │ │ ├── Main.java │ │ └── StringSequence.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── MainTest.java │ └── resources/ │ └── test-mock-load.jar ├── log4j2/ │ ├── README.md │ ├── log4j2-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── log4j2/ │ │ ├── ClassLoaderUtils.java │ │ ├── ClassloaderSupplier.java │ │ ├── FinalClassloaderSupplier.java │ │ ├── Logger.java │ │ ├── LoggerFactory.java │ │ ├── MDC.java │ │ ├── api/ │ │ │ ├── AgentLogger.java │ │ │ ├── AgentLoggerFactory.java │ │ │ ├── ILevel.java │ │ │ └── Mdc.java │ │ └── exception/ │ │ └── Log4j2Exception.java │ ├── log4j2-impl/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── log4j2/ │ │ └── impl/ │ │ ├── AgentLoggerProxy.java │ │ ├── LoggerProxyFactory.java │ │ ├── MdcProxy.java │ │ └── Slf4jLogger.java │ └── pom.xml ├── metrics/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── metrics/ │ │ │ ├── AgentScheduledReporter.java │ │ │ ├── AutoRefreshReporter.java │ │ │ ├── MetricBeanProviderImpl.java │ │ │ ├── MetricProviderImpl.java │ │ │ ├── MetricRegistryService.java │ │ │ ├── PrometheusAgentHttpHandler.java │ │ │ ├── config/ │ │ │ │ ├── MetricsCollectorConfig.java │ │ │ │ ├── MetricsConfig.java │ │ │ │ └── PluginMetricsConfig.java │ │ │ ├── converter/ │ │ │ │ ├── AbstractConverter.java │ │ │ │ ├── Converter.java │ │ │ │ ├── ConverterAdapter.java │ │ │ │ ├── EaseAgentPrometheusExports.java │ │ │ │ ├── IgnoreOutputException.java │ │ │ │ ├── KeyType.java │ │ │ │ └── MetricsAdditionalAttributes.java │ │ │ ├── impl/ │ │ │ │ ├── CounterImpl.java │ │ │ │ ├── GaugeImpl.java │ │ │ │ ├── HistogramImpl.java │ │ │ │ ├── MeterImpl.java │ │ │ │ ├── MetricInstance.java │ │ │ │ ├── MetricRegistryImpl.java │ │ │ │ ├── SnapshotImpl.java │ │ │ │ └── TimerImpl.java │ │ │ ├── jvm/ │ │ │ │ ├── JvmBeanProvider.java │ │ │ │ ├── gc/ │ │ │ │ │ └── JVMGCMetricV2.java │ │ │ │ └── memory/ │ │ │ │ └── JVMMemoryMetricV2.java │ │ │ └── model/ │ │ │ └── JVMMemoryGaugeMetricModel.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── com.megaease.easeagent.plugin.bean.BeanProvider │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── metrics/ │ │ ├── MetricProviderImplTest.java │ │ ├── MetricRegistryServiceTest.java │ │ ├── PrometheusAgentHttpHandlerTest.java │ │ ├── TestConst.java │ │ ├── config/ │ │ │ └── PluginMetricsConfigTest.java │ │ ├── converter/ │ │ │ ├── AbstractConverterTest.java │ │ │ ├── ConverterAdapterTest.java │ │ │ ├── IgnoreOutputExceptionTest.java │ │ │ └── MetricsAdditionalAttributesTest.java │ │ ├── impl/ │ │ │ ├── CounterImplTest.java │ │ │ ├── GaugeImplTest.java │ │ │ ├── HistogramImplTest.java │ │ │ ├── MeterImplTest.java │ │ │ ├── MetricInstanceTest.java │ │ │ ├── MetricRegistryImplTest.java │ │ │ ├── MetricRegistryMock.java │ │ │ ├── MetricTestUtils.java │ │ │ ├── MockClock.java │ │ │ ├── SnapshotImplTest.java │ │ │ └── TimerImplTest.java │ │ └── jvm/ │ │ └── memory/ │ │ └── JVMMemoryMetricV2Test.java │ └── resources/ │ ├── log4j2.xml │ └── mock_agent.properties ├── mock/ │ ├── config-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ ├── config/ │ │ │ │ └── MockConfigLoader.java │ │ │ └── mock/ │ │ │ └── config/ │ │ │ └── MockConfig.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── config/ │ │ │ └── MockConfigTest.java │ │ └── resources/ │ │ ├── mock_agent.properties │ │ └── mock_agent.yaml │ ├── context-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── mock/ │ │ └── context/ │ │ ├── MockContext.java │ │ └── MockContextManager.java │ ├── log4j2-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── megaease/ │ │ │ │ └── easeagent/ │ │ │ │ └── mock/ │ │ │ │ └── log4j2/ │ │ │ │ ├── AllUrlsSupplier.java │ │ │ │ ├── DirUrlsSupplier.java │ │ │ │ ├── JarPathUrlsSupplier.java │ │ │ │ ├── JarUrlsSupplier.java │ │ │ │ ├── URLClassLoaderSupplier.java │ │ │ │ └── UrlSupplier.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── com.megaease.easeagent.log4j2.ClassloaderSupplier │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── log4j2/ │ │ │ └── impl/ │ │ │ ├── AgentLoggerFactoryTest.java │ │ │ └── MDCTest.java │ │ └── resources/ │ │ └── log4j2.xml │ ├── metrics-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── metrics/ │ │ │ ├── MetricTestUtils.java │ │ │ └── MockMetricProvider.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── com.megaease.easeagent.mock.utils.MockProvider │ ├── plugin-api-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── plugin/ │ │ │ └── api/ │ │ │ ├── MockEaseAgent.java │ │ │ ├── junit/ │ │ │ │ ├── AfterStatement.java │ │ │ │ ├── BeforeStatement.java │ │ │ │ ├── EaseAgentJunit4ClassRunner.java │ │ │ │ └── ScopeMustBeCloseException.java │ │ │ └── utils/ │ │ │ ├── ConfigTestUtils.java │ │ │ ├── ContextUtils.java │ │ │ ├── InterceptorTestUtils.java │ │ │ ├── SpanTestUtils.java │ │ │ └── TagVerifier.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── plugin/ │ │ │ └── api/ │ │ │ ├── TestContext.java │ │ │ ├── TestEaseAgent.java │ │ │ ├── demo/ │ │ │ │ ├── InterceptorTest.java │ │ │ │ ├── M1MetricCollect.java │ │ │ │ └── MockEaseAgentTest.java │ │ │ └── utils/ │ │ │ └── ConfigTestUtilsTest.java │ │ └── resources/ │ │ └── log4j2.xml │ ├── pom.xml │ ├── report-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── report/ │ │ │ ├── JsonReporter.java │ │ │ ├── MetricFlushable.java │ │ │ ├── MockAtomicReferenceReportSpanReport.java │ │ │ ├── MockReport.java │ │ │ ├── MockSpan.java │ │ │ ├── MockSpanReport.java │ │ │ └── impl/ │ │ │ ├── LastJsonReporter.java │ │ │ └── ZipkinMockSpanImpl.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── report/ │ │ │ └── MockReportTest.java │ │ └── resources/ │ │ └── log4j2.xml │ ├── utils-mock/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── mock/ │ │ └── utils/ │ │ ├── JdkHttpServer.java │ │ ├── MockProvider.java │ │ └── MockSystemEnv.java │ └── zipkin-mock/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── brave/ │ │ │ │ ├── TracerTestUtils.java │ │ │ │ └── internal/ │ │ │ │ └── collect/ │ │ │ │ └── WeakConcurrentMapTestUtils.java │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── mock/ │ │ │ └── zipkin/ │ │ │ └── MockTracingProvider.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── com.megaease.easeagent.mock.utils.MockProvider │ └── test/ │ └── java/ │ └── com/ │ └── megaease/ │ └── easeagent/ │ └── mock/ │ └── zipkin/ │ └── MockTracingProviderTest.java ├── plugin-api/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ ├── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ ├── AgentPlugin.java │ │ │ ├── AppendBootstrapLoader.java │ │ │ ├── CodeVersion.java │ │ │ ├── Ordered.java │ │ │ ├── Points.java │ │ │ ├── annotation/ │ │ │ │ ├── AdviceTo.java │ │ │ │ ├── AdvicesTo.java │ │ │ │ ├── DynamicField.java │ │ │ │ └── Injection.java │ │ │ ├── api/ │ │ │ │ ├── Cleaner.java │ │ │ │ ├── Context.java │ │ │ │ ├── InitializeContext.java │ │ │ │ ├── ProgressFields.java │ │ │ │ ├── Reporter.java │ │ │ │ ├── config/ │ │ │ │ │ ├── AutoRefreshConfigSupplier.java │ │ │ │ │ ├── AutoRefreshPluginConfig.java │ │ │ │ │ ├── AutoRefreshPluginConfigImpl.java │ │ │ │ │ ├── AutoRefreshPluginConfigRegistry.java │ │ │ │ │ ├── ChangeItem.java │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── ConfigChangeListener.java │ │ │ │ │ ├── ConfigConst.java │ │ │ │ │ ├── Const.java │ │ │ │ │ ├── IConfigFactory.java │ │ │ │ │ ├── IPluginConfig.java │ │ │ │ │ └── PluginConfigChangeListener.java │ │ │ │ ├── context/ │ │ │ │ │ ├── AsyncContext.java │ │ │ │ │ ├── ContextCons.java │ │ │ │ │ ├── ContextUtils.java │ │ │ │ │ ├── IContextManager.java │ │ │ │ │ └── RequestContext.java │ │ │ │ ├── dispatcher/ │ │ │ │ │ └── IDispatcher.java │ │ │ │ ├── health/ │ │ │ │ │ └── AgentHealth.java │ │ │ │ ├── logging/ │ │ │ │ │ ├── AccessLogInfo.java │ │ │ │ │ ├── ILoggerFactory.java │ │ │ │ │ ├── Logger.java │ │ │ │ │ └── Mdc.java │ │ │ │ ├── metric/ │ │ │ │ │ ├── Counter.java │ │ │ │ │ ├── Gauge.java │ │ │ │ │ ├── Histogram.java │ │ │ │ │ ├── Meter.java │ │ │ │ │ ├── Metric.java │ │ │ │ │ ├── MetricProvider.java │ │ │ │ │ ├── MetricRegistry.java │ │ │ │ │ ├── MetricRegistrySupplier.java │ │ │ │ │ ├── MetricSupplier.java │ │ │ │ │ ├── ServiceMetric.java │ │ │ │ │ ├── ServiceMetricRegistry.java │ │ │ │ │ ├── ServiceMetricSupplier.java │ │ │ │ │ ├── Snapshot.java │ │ │ │ │ ├── Timer.java │ │ │ │ │ └── name/ │ │ │ │ │ ├── ConverterType.java │ │ │ │ │ ├── MetricField.java │ │ │ │ │ ├── MetricName.java │ │ │ │ │ ├── MetricSubType.java │ │ │ │ │ ├── MetricType.java │ │ │ │ │ ├── MetricValueFetcher.java │ │ │ │ │ ├── NameFactory.java │ │ │ │ │ └── Tags.java │ │ │ │ ├── middleware/ │ │ │ │ │ ├── MiddlewareConstants.java │ │ │ │ │ ├── Redirect.java │ │ │ │ │ ├── RedirectProcessor.java │ │ │ │ │ ├── ResourceConfig.java │ │ │ │ │ └── Type.java │ │ │ │ ├── otlp/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── AgentAttributes.java │ │ │ │ │ ├── AgentInstrumentLibInfo.java │ │ │ │ │ ├── AgentLogData.java │ │ │ │ │ ├── AgentLogDataImpl.java │ │ │ │ │ ├── LogMapper.java │ │ │ │ │ ├── OtlpSpanContext.java │ │ │ │ │ └── SemanticKey.java │ │ │ │ └── trace/ │ │ │ │ ├── Extractor.java │ │ │ │ ├── Getter.java │ │ │ │ ├── ITracing.java │ │ │ │ ├── Injector.java │ │ │ │ ├── Message.java │ │ │ │ ├── MessagingRequest.java │ │ │ │ ├── MessagingTracing.java │ │ │ │ ├── Request.java │ │ │ │ ├── Response.java │ │ │ │ ├── Scope.java │ │ │ │ ├── Setter.java │ │ │ │ ├── Span.java │ │ │ │ ├── SpanContext.java │ │ │ │ ├── Tracing.java │ │ │ │ ├── TracingContext.java │ │ │ │ ├── TracingProvider.java │ │ │ │ └── TracingSupplier.java │ │ │ ├── asm/ │ │ │ │ └── Modifier.java │ │ │ ├── async/ │ │ │ │ ├── AgentThreadFactory.java │ │ │ │ ├── ScheduleHelper.java │ │ │ │ ├── ScheduleRunner.java │ │ │ │ ├── ThreadLocalCurrentContext.java │ │ │ │ └── ThreadUtils.java │ │ │ ├── bean/ │ │ │ │ ├── AgentInitializingBean.java │ │ │ │ └── BeanProvider.java │ │ │ ├── bridge/ │ │ │ │ ├── AgentInfo.java │ │ │ │ ├── EaseAgent.java │ │ │ │ ├── NoOpAgentReporter.java │ │ │ │ ├── NoOpCleaner.java │ │ │ │ ├── NoOpConfigFactory.java │ │ │ │ ├── NoOpContext.java │ │ │ │ ├── NoOpDispatcher.java │ │ │ │ ├── NoOpIPluginConfig.java │ │ │ │ ├── NoOpLoggerFactory.java │ │ │ │ ├── NoOpMetrics.java │ │ │ │ ├── NoOpReporter.java │ │ │ │ └── NoOpTracer.java │ │ │ ├── enums/ │ │ │ │ ├── ClassMatch.java │ │ │ │ ├── Operator.java │ │ │ │ ├── Order.java │ │ │ │ └── StringMatch.java │ │ │ ├── field/ │ │ │ │ ├── AgentDynamicFieldAccessor.java │ │ │ │ ├── AgentFieldReflectAccessor.java │ │ │ │ ├── DynamicFieldAccessor.java │ │ │ │ ├── NullObject.java │ │ │ │ └── TypeFieldGetter.java │ │ │ ├── interceptor/ │ │ │ │ ├── AgentInterceptorChain.java │ │ │ │ ├── Interceptor.java │ │ │ │ ├── InterceptorProvider.java │ │ │ │ ├── MethodInfo.java │ │ │ │ └── NonReentrantInterceptor.java │ │ │ ├── matcher/ │ │ │ │ ├── ClassMatcher.java │ │ │ │ ├── IClassMatcher.java │ │ │ │ ├── IMethodMatcher.java │ │ │ │ ├── Matcher.java │ │ │ │ ├── MethodMatcher.java │ │ │ │ ├── loader/ │ │ │ │ │ ├── ClassLoaderMatcher.java │ │ │ │ │ ├── IClassLoaderMatcher.java │ │ │ │ │ └── NegateClassLoaderMatcher.java │ │ │ │ └── operator/ │ │ │ │ ├── AndClassMatcher.java │ │ │ │ ├── AndMethodMatcher.java │ │ │ │ ├── NegateClassMatcher.java │ │ │ │ ├── NegateMethodMatcher.java │ │ │ │ ├── Operator.java │ │ │ │ ├── OrClassMatcher.java │ │ │ │ └── OrMethodMatcher.java │ │ │ ├── processor/ │ │ │ │ ├── BeanUtils.java │ │ │ │ ├── ElementVisitor8.java │ │ │ │ ├── GenerateProviderBean.java │ │ │ │ ├── PluginProcessor.java │ │ │ │ └── RepeatedAnnotationVisitor.java │ │ │ ├── report/ │ │ │ │ ├── AgentReport.java │ │ │ │ ├── ByteWrapper.java │ │ │ │ ├── Call.java │ │ │ │ ├── Callback.java │ │ │ │ ├── EncodedData.java │ │ │ │ ├── Encoder.java │ │ │ │ ├── Packer.java │ │ │ │ ├── Sender.java │ │ │ │ ├── encoder/ │ │ │ │ │ └── JsonEncoder.java │ │ │ │ ├── metric/ │ │ │ │ │ └── MetricReporterFactory.java │ │ │ │ └── tracing/ │ │ │ │ ├── Annotation.java │ │ │ │ ├── Endpoint.java │ │ │ │ ├── ReportSpan.java │ │ │ │ └── ReportSpanImpl.java │ │ │ ├── tools/ │ │ │ │ ├── config/ │ │ │ │ │ └── NameAndSystem.java │ │ │ │ ├── loader/ │ │ │ │ │ └── AgentHelperClassLoader.java │ │ │ │ ├── matcher/ │ │ │ │ │ ├── ClassMatcherUtils.java │ │ │ │ │ └── MethodMatcherUtils.java │ │ │ │ ├── metrics/ │ │ │ │ │ ├── AccessLogServerInfo.java │ │ │ │ │ ├── ErrorPercentModelGauge.java │ │ │ │ │ ├── GaugeMetricModel.java │ │ │ │ │ ├── HttpLog.java │ │ │ │ │ ├── LastMinutesCounterGauge.java │ │ │ │ │ ├── NameFactorySupplier.java │ │ │ │ │ ├── RedisMetric.java │ │ │ │ │ └── ServerMetric.java │ │ │ │ └── trace/ │ │ │ │ ├── BaseHttpClientTracingInterceptor.java │ │ │ │ ├── HttpRequest.java │ │ │ │ ├── HttpResponse.java │ │ │ │ ├── HttpUtils.java │ │ │ │ └── TraceConst.java │ │ │ └── utils/ │ │ │ ├── AdditionalAttributes.java │ │ │ ├── ClassInstance.java │ │ │ ├── ClassUtils.java │ │ │ ├── ImmutableMap.java │ │ │ ├── NoNull.java │ │ │ ├── Pair.java │ │ │ ├── SystemClock.java │ │ │ ├── SystemEnv.java │ │ │ ├── common/ │ │ │ │ ├── DataSize.java │ │ │ │ ├── DataUnit.java │ │ │ │ ├── ExceptionUtil.java │ │ │ │ ├── HostAddress.java │ │ │ │ ├── JsonUtil.java │ │ │ │ ├── StringUtils.java │ │ │ │ └── WeakConcurrentMap.java │ │ │ └── jackson/ │ │ │ └── annotation/ │ │ │ └── JsonProperty.java │ │ └── io/ │ │ └── opentelemetry/ │ │ └── sdk/ │ │ └── resources/ │ │ └── EaseAgentResource.java │ └── test/ │ └── java/ │ └── com/ │ └── megaease/ │ └── easeagent/ │ └── plugin/ │ ├── api/ │ │ ├── MockSystemEnv.java │ │ ├── ProgressFieldsTest.java │ │ ├── metric/ │ │ │ └── name/ │ │ │ └── NameFactoryTest.java │ │ └── middleware/ │ │ ├── RedirectProcessorTest.java │ │ ├── RedirectTest.java │ │ └── ResourceConfigTest.java │ ├── async/ │ │ └── ThreadLocalCurrentContextTest.java │ └── tools/ │ └── config/ │ └── AutoRefreshConfigSupplierTest.java ├── plugins/ │ ├── async/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ ├── AsyncPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── CrossThreadAdvice.java │ │ │ │ └── ReactSchedulersAdvice.java │ │ │ └── interceptor/ │ │ │ └── RunnableInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── interceptor/ │ │ │ └── RunnableInterceptorTest.java │ │ └── resources/ │ │ └── log4j2.xml │ ├── dubbo/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── dubbo/ │ │ │ ├── AlibabaDubboCtxUtils.java │ │ │ ├── ApacheDubboCtxUtils.java │ │ │ ├── DubboMetricTags.java │ │ │ ├── DubboPlugin.java │ │ │ ├── DubboTraceTags.java │ │ │ ├── advice/ │ │ │ │ ├── AlibabaDubboAdvice.java │ │ │ │ ├── AlibabaDubboResponseFutureAdvice.java │ │ │ │ └── ApacheDubboAdvice.java │ │ │ ├── config/ │ │ │ │ └── DubboTraceConfig.java │ │ │ └── interceptor/ │ │ │ ├── DubboBaseInterceptor.java │ │ │ ├── metrics/ │ │ │ │ ├── DubboBaseMetricsInterceptor.java │ │ │ │ ├── DubboMetrics.java │ │ │ │ ├── alibaba/ │ │ │ │ │ ├── AlibabaDubboAsyncMetricsInterceptor.java │ │ │ │ │ ├── AlibabaDubboMetricsCallback.java │ │ │ │ │ └── AlibabaDubboMetricsInterceptor.java │ │ │ │ └── apache/ │ │ │ │ ├── ApacheDubboMetricsAsyncCallback.java │ │ │ │ └── ApacheDubboMetricsInterceptor.java │ │ │ └── trace/ │ │ │ ├── alibaba/ │ │ │ │ ├── AlibabaDubboAsyncTraceInterceptor.java │ │ │ │ ├── AlibabaDubboClientRequest.java │ │ │ │ ├── AlibabaDubboServerRequest.java │ │ │ │ ├── AlibabaDubboTraceCallback.java │ │ │ │ └── AlibabaDubboTraceInterceptor.java │ │ │ └── apache/ │ │ │ ├── ApacheDubboClientRequest.java │ │ │ ├── ApacheDubboServerRequest.java │ │ │ ├── ApacheDubboTraceCallback.java │ │ │ └── ApacheDubboTraceInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── dubbo/ │ │ │ └── interceptor/ │ │ │ ├── AlibabaDubboBaseTest.java │ │ │ ├── ApacheDubboBaseTest.java │ │ │ ├── metrics/ │ │ │ │ ├── alibaba/ │ │ │ │ │ ├── AlibabaDubboAsyncMetricsInterceptorTest.java │ │ │ │ │ └── AlibabaDubboMetricsInterceptorTest.java │ │ │ │ └── apache/ │ │ │ │ └── ApacheDubboMetricsInterceptorTest.java │ │ │ └── trace/ │ │ │ ├── alibaba/ │ │ │ │ ├── AlibabaDubboAsyncTraceInterceptorTest.java │ │ │ │ └── AlibabaDubboTraceInterceptorTest.java │ │ │ └── apache/ │ │ │ └── ApacheDubboTraceInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── elasticsearch/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── elasticsearch/ │ │ │ ├── ElasticsearchPlugin.java │ │ │ ├── ElasticsearchRedirectPlugin.java │ │ │ ├── advice/ │ │ │ │ └── SpringElasticsearchAdvice.java │ │ │ ├── interceptor/ │ │ │ │ ├── AsyncResponse4MetricsListener.java │ │ │ │ ├── AsyncResponse4TraceListener.java │ │ │ │ ├── ElasticsearchBaseInterceptor.java │ │ │ │ ├── ElasticsearchBaseMetricsInterceptor.java │ │ │ │ ├── ElasticsearchBaseTraceInterceptor.java │ │ │ │ ├── ElasticsearchCtxUtils.java │ │ │ │ ├── ElasticsearchMetric.java │ │ │ │ ├── ElasticsearchPerformRequestAsync4MetricsInterceptor.java │ │ │ │ ├── ElasticsearchPerformRequestAsync4TraceInterceptor.java │ │ │ │ ├── ElasticsearchPerformRequestMetricsInterceptor.java │ │ │ │ ├── ElasticsearchPerformRequestTraceInterceptor.java │ │ │ │ └── redirect/ │ │ │ │ └── SpringElasticsearchInterceptor.java │ │ │ └── points/ │ │ │ ├── ElasticsearchPerformRequestAsyncPoints.java │ │ │ └── ElasticsearchPerformRequestPoints.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── plugin/ │ │ └── elasticsearch/ │ │ └── interceptor/ │ │ ├── ElasticsearchBaseTest.java │ │ ├── ElasticsearchCtxUtilsTest.java │ │ ├── ElasticsearchPerformRequestAsyncMetricsInterceptorTest.java │ │ ├── ElasticsearchPerformRequestAsyncTraceInterceptorTest.java │ │ ├── ElasticsearchPerformRequestMetricsInterceptorTest.java │ │ └── ElasticsearchPerformRequestTraceInterceptorTest.java │ ├── healthy/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── healthy/ │ │ │ ├── HealthPlugin.java │ │ │ ├── OnApplicationEventInterceptor.java │ │ │ └── SpringApplicationAdminMXBeanRegistrarAdvice.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── plugin/ │ │ └── healthy/ │ │ └── OnApplicationEventInterceptorTest.java │ ├── httpclient/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpclient/ │ │ │ ├── ForwardedPlugin.java │ │ │ ├── HttpClientPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── HttpClient5AsyncAdvice.java │ │ │ │ ├── HttpClient5DoExecuteAdvice.java │ │ │ │ └── HttpClientDoExecuteAdvice.java │ │ │ └── interceptor/ │ │ │ ├── HttpClient5AsyncForwardedInterceptor.java │ │ │ ├── HttpClient5AsyncTracingInterceptor.java │ │ │ ├── HttpClient5DoExecuteForwardedInterceptor.java │ │ │ ├── HttpClient5DoExecuteInterceptor.java │ │ │ ├── HttpClientDoExecuteForwardedInterceptor.java │ │ │ └── HttpClientDoExecuteInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpclient/ │ │ │ └── interceptor/ │ │ │ ├── HttpClient5AsyncForwardedInterceptorTest.java │ │ │ ├── HttpClient5AsyncTracingInterceptorTest.java │ │ │ ├── HttpClient5DoExecuteForwardedInterceptorTest.java │ │ │ ├── HttpClient5DoExecuteInterceptorTest.java │ │ │ ├── HttpClientDoExecuteForwardedInterceptorTest.java │ │ │ ├── HttpClientDoExecuteInterceptorTest.java │ │ │ └── TestConst.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── httpservlet/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpservlet/ │ │ │ ├── AccessPlugin.java │ │ │ ├── ForwardedPlugin.java │ │ │ ├── HttpServletPlugin.java │ │ │ ├── advice/ │ │ │ │ └── DoFilterPoints.java │ │ │ ├── interceptor/ │ │ │ │ ├── BaseServletInterceptor.java │ │ │ │ ├── DoFilterForwardedInterceptor.java │ │ │ │ ├── DoFilterMetricInterceptor.java │ │ │ │ ├── DoFilterTraceInterceptor.java │ │ │ │ ├── HttpServerRequest.java │ │ │ │ ├── ServletAccessLogServerInfo.java │ │ │ │ └── ServletHttpLogInterceptor.java │ │ │ └── utils/ │ │ │ ├── InternalAsyncListener.java │ │ │ └── ServletUtils.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpservlet/ │ │ │ └── interceptor/ │ │ │ ├── BaseServletInterceptorTest.java │ │ │ ├── DoFilterForwardedInterceptorTest.java │ │ │ ├── DoFilterMetricInterceptorTest.java │ │ │ ├── DoFilterTraceInterceptorTest.java │ │ │ ├── HttpServerRequestTest.java │ │ │ ├── ServletAccessLogInfoServerInfoTest.java │ │ │ ├── ServletHttpLogInterceptorTest.java │ │ │ ├── TestConst.java │ │ │ └── TestServletUtils.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── httpurlconnection/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpurlconnection/ │ │ │ ├── ForwardedPlugin.java │ │ │ ├── HttpURLConnectionPlugin.java │ │ │ ├── advice/ │ │ │ │ └── HttpURLConnectionGetResponseCodeAdvice.java │ │ │ └── interceptor/ │ │ │ ├── HttpURLConnectionGetResponseCodeForwardedInterceptor.java │ │ │ └── HttpURLConnectionGetResponseCodeInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpurlconnection/ │ │ │ └── interceptor/ │ │ │ ├── HttpURLConnectionGetResponseCodeForwardedInterceptorTest.java │ │ │ ├── HttpURLConnectionGetResponseCodeInterceptorTest.java │ │ │ └── TestUtils.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── httpurlconnection-jdk17/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpurlconnection/ │ │ │ └── jdk17/ │ │ │ ├── ForwardedPlugin.java │ │ │ ├── HttpURLConnectionPlugin.java │ │ │ ├── advice/ │ │ │ │ └── HttpURLConnectionAdvice.java │ │ │ └── interceptor/ │ │ │ ├── DynamicFieldUtils.java │ │ │ ├── HttpURLConnectionForwardedInterceptor.java │ │ │ ├── HttpURLConnectionInterceptor.java │ │ │ └── HttpURLConnectionUtils.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── httpurlconnection/ │ │ │ └── jdk17/ │ │ │ └── interceptor/ │ │ │ ├── HttpURLConnectionForwardedInterceptorTest.java │ │ │ ├── HttpURLConnectionInterceptorTest.java │ │ │ └── TestUtils.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── jdbc/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── jdbc/ │ │ │ ├── JdbcConnectionMetricPlugin.java │ │ │ ├── JdbcDataSourceMetricPlugin.java │ │ │ ├── JdbcRedirectPlugin.java │ │ │ ├── JdbcTracingPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── HikariDataSourceAdvice.java │ │ │ │ ├── JdbcConnectionAdvice.java │ │ │ │ ├── JdbcDataSourceAdvice.java │ │ │ │ └── JdbcStatementAdvice.java │ │ │ ├── common/ │ │ │ │ ├── DatabaseInfo.java │ │ │ │ ├── JdbcUtils.java │ │ │ │ ├── MD5DictionaryItem.java │ │ │ │ ├── MD5ReportConsumer.java │ │ │ │ ├── MD5SQLCompression.java │ │ │ │ ├── SQLCompression.java │ │ │ │ ├── SQLCompressionFactory.java │ │ │ │ ├── SQLCompressionWrapper.java │ │ │ │ └── SqlInfo.java │ │ │ └── interceptor/ │ │ │ ├── JdbConPrepareOrCreateStmInterceptor.java │ │ │ ├── JdbcStmPrepareSqlInterceptor.java │ │ │ ├── metric/ │ │ │ │ ├── JdbcDataSourceMetricInterceptor.java │ │ │ │ ├── JdbcMetric.java │ │ │ │ └── JdbcStmMetricInterceptor.java │ │ │ ├── redirect/ │ │ │ │ └── HikariSetPropertyInterceptor.java │ │ │ └── tracing/ │ │ │ └── JdbcStmTracingInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── jdbc/ │ │ │ ├── MockJDBCStatement.java │ │ │ ├── TestUtils.java │ │ │ ├── common/ │ │ │ │ ├── DatabaseInfoTest.java │ │ │ │ ├── JdbcUtilsTest.java │ │ │ │ ├── MD5DictionaryItemTest.java │ │ │ │ ├── MD5ReportConsumerTest.java │ │ │ │ ├── MD5SQLCompressionTest.java │ │ │ │ └── SqlInfoTest.java │ │ │ └── interceptor/ │ │ │ ├── JdbConPrepareOrCreateStmInterceptorTest.java │ │ │ ├── JdbcStmPrepareSqlInterceptorTest.java │ │ │ ├── metric/ │ │ │ │ ├── JdbcDataSourceMetricInterceptorTest.java │ │ │ │ ├── JdbcMetricTest.java │ │ │ │ └── JdbcStmMetricInterceptorTest.java │ │ │ ├── redirect/ │ │ │ │ └── HikariSetPropertyInterceptorTest.java │ │ │ └── tracing/ │ │ │ └── JdbcStmTracingInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── kafka/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── kafka/ │ │ │ ├── KafkaPlugin.java │ │ │ ├── KafkaRedirectPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── KafkaConsumerAdvice.java │ │ │ │ ├── KafkaConsumerConfigAdvice.java │ │ │ │ ├── KafkaConsumerRecordAdvice.java │ │ │ │ ├── KafkaMessageListenerAdvice.java │ │ │ │ ├── KafkaProducerAdvice.java │ │ │ │ └── KafkaProducerConfigAdvice.java │ │ │ └── interceptor/ │ │ │ ├── AsyncCallback.java │ │ │ ├── KafkaUtils.java │ │ │ ├── initialize/ │ │ │ │ ├── ConsumerRecordInterceptor.java │ │ │ │ ├── KafkaConsumerConstructInterceptor.java │ │ │ │ ├── KafkaConsumerPollInterceptor.java │ │ │ │ └── KafkaProducerConstructInterceptor.java │ │ │ ├── metric/ │ │ │ │ ├── KafkaConsumerMetricInterceptor.java │ │ │ │ ├── KafkaMessageListenerMetricInterceptor.java │ │ │ │ ├── KafkaMetric.java │ │ │ │ ├── KafkaProducerMetricInterceptor.java │ │ │ │ └── MetricCallback.java │ │ │ ├── redirect/ │ │ │ │ ├── KafkaAbstractConfigConstructInterceptor.java │ │ │ │ ├── KafkaConsumerConfigConstructInterceptor.java │ │ │ │ └── KafkaProducerConfigConstructInterceptor.java │ │ │ └── tracing/ │ │ │ ├── KafkaConsumerRequest.java │ │ │ ├── KafkaConsumerTracingInterceptor.java │ │ │ ├── KafkaHeaders.java │ │ │ ├── KafkaMessageListenerTracingInterceptor.java │ │ │ ├── KafkaProducerDoSendInterceptor.java │ │ │ ├── KafkaProducerRequest.java │ │ │ ├── KafkaTags.java │ │ │ └── TraceCallback.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── kafka/ │ │ │ └── interceptor/ │ │ │ ├── AsyncCallbackTest.java │ │ │ ├── KafkaTestUtils.java │ │ │ ├── KafkaUtilsTest.java │ │ │ ├── MockConsumerRecord.java │ │ │ ├── MockKafkaConsumer.java │ │ │ ├── MockKafkaProducer.java │ │ │ ├── TestConst.java │ │ │ ├── initialize/ │ │ │ │ ├── ConsumerRecordInterceptorTest.java │ │ │ │ ├── KafkaConsumerConstructInterceptorTest.java │ │ │ │ ├── KafkaConsumerPollInterceptorTest.java │ │ │ │ ├── KafkaProducerConstructInterceptorTest.java │ │ │ │ └── MockDynamicFieldAccessor.java │ │ │ ├── metric/ │ │ │ │ ├── KafkaConsumerMetricInterceptorTest.java │ │ │ │ ├── KafkaMessageListenerMetricInterceptorTest.java │ │ │ │ ├── KafkaMetricTest.java │ │ │ │ ├── KafkaProducerMetricInterceptorTest.java │ │ │ │ └── MetricCallbackTest.java │ │ │ ├── redirect/ │ │ │ │ └── KafkaAbstractConfigConstructInterceptorTest.java │ │ │ └── tracing/ │ │ │ ├── KafkaConsumerRequestTest.java │ │ │ ├── KafkaConsumerTracingInterceptorTest.java │ │ │ ├── KafkaHeadersTest.java │ │ │ ├── KafkaMessageListenerTracingInterceptorTest.java │ │ │ ├── KafkaProducerDoSendInterceptorTest.java │ │ │ ├── KafkaProducerRequestTest.java │ │ │ └── TraceCallbackTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── log4j2-log-plugin/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── log4j2/ │ │ ├── Log4j2Plugin.java │ │ ├── interceptor/ │ │ │ └── Log4j2AppenderInterceptor.java │ │ ├── log/ │ │ │ └── Log4jLogMapper.java │ │ └── points/ │ │ └── AbstractLoggerPoints.java │ ├── logback/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── logback/ │ │ ├── LogbackPlugin.java │ │ ├── interceptor/ │ │ │ └── LogbackAppenderInterceptor.java │ │ ├── log/ │ │ │ └── LogbackLogMapper.java │ │ └── points/ │ │ └── LoggerPoints.java │ ├── mongodb/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── mongodb/ │ │ │ ├── MongoPlugin.java │ │ │ ├── MongoRedirectPlugin.java │ │ │ ├── MongoUtils.java │ │ │ ├── interceptor/ │ │ │ │ ├── InterceptorHelper.java │ │ │ │ ├── MetricHelper.java │ │ │ │ ├── MongoBaseInterceptor.java │ │ │ │ ├── MongoBaseMetricInterceptor.java │ │ │ │ ├── MongoBaseTraceInterceptor.java │ │ │ │ ├── MongoClientConstruct4MetricInterceptor.java │ │ │ │ ├── MongoClientConstruct4TraceInterceptor.java │ │ │ │ ├── MongoCtx.java │ │ │ │ ├── MongoDbRedirectInterceptor.java │ │ │ │ ├── MongoInternalConnectionSendAndReceiveAsync4MetricInterceptor.java │ │ │ │ ├── MongoInternalConnectionSendAndReceiveAsync4TraceInterceptor.java │ │ │ │ ├── MongoMetric.java │ │ │ │ ├── MongoReactiveInitMetricInterceptor.java │ │ │ │ ├── MongoReactiveInitTraceInterceptor.java │ │ │ │ ├── TraceHelper.java │ │ │ │ └── listener/ │ │ │ │ ├── MongoBaseCommandListener.java │ │ │ │ ├── MongoBaseMetricCommandListener.java │ │ │ │ ├── MongoBaseTraceCommandListener.java │ │ │ │ ├── MongoMetricCommandListener.java │ │ │ │ ├── MongoReactiveMetricCommandListener.java │ │ │ │ ├── MongoReactiveTraceCommandListener.java │ │ │ │ └── MongoTraceCommandListener.java │ │ │ └── points/ │ │ │ ├── MongoAsyncMongoClientsPoints.java │ │ │ ├── MongoClientImplPoints.java │ │ │ ├── MongoDBInternalConnectionPoints.java │ │ │ └── MongoRedirectPoints.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── plugin/ │ │ └── mongodb/ │ │ ├── MongoBaseTest.java │ │ ├── MongoMetricTest.java │ │ ├── MongoReactiveMetricTest.java │ │ ├── MongoReactiveTraceTest.java │ │ ├── MongoTraceTest.java │ │ └── TraceHelperTest.java │ ├── motan/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── motan/ │ │ │ ├── MotanPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── MotanConsumerAdvice.java │ │ │ │ └── MotanProviderAdvice.java │ │ │ ├── config/ │ │ │ │ └── MotanPluginConfig.java │ │ │ └── interceptor/ │ │ │ ├── MotanClassUtils.java │ │ │ ├── MotanCtxUtils.java │ │ │ ├── metrics/ │ │ │ │ ├── MetricsFutureListener.java │ │ │ │ ├── MotanBaseMetricsInterceptor.java │ │ │ │ ├── MotanMetric.java │ │ │ │ ├── MotanMetricTags.java │ │ │ │ └── MotanMetricsInterceptor.java │ │ │ └── trace/ │ │ │ ├── MotanBaseInterceptor.java │ │ │ ├── MotanTags.java │ │ │ ├── consumer/ │ │ │ │ ├── MotanConsumerRequest.java │ │ │ │ ├── MotanConsumerTraceInterceptor.java │ │ │ │ └── TraceFutureListener.java │ │ │ └── provider/ │ │ │ ├── MotanProviderRequest.java │ │ │ └── MotanProviderTraceInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── motan/ │ │ │ └── interceptor/ │ │ │ ├── metrics/ │ │ │ │ └── MotanMetricsInterceptorTest.java │ │ │ └── trace/ │ │ │ ├── MotanInterceptorTest.java │ │ │ ├── consumer/ │ │ │ │ └── MotanConsumerInterceptorTest.java │ │ │ └── provider/ │ │ │ └── MotanProviderInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── okhttp/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── okhttp/ │ │ │ ├── ForwardedPlugin.java │ │ │ ├── OkHttpPlugin.java │ │ │ ├── advice/ │ │ │ │ └── OkHttpAdvice.java │ │ │ └── interceptor/ │ │ │ ├── ForwardedRequest.java │ │ │ ├── InternalRequest.java │ │ │ ├── InternalResponse.java │ │ │ ├── OkHttpAsyncTracingInterceptor.java │ │ │ ├── OkHttpForwardedInterceptor.java │ │ │ └── OkHttpTracingInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── okhttp/ │ │ │ └── interceptor/ │ │ │ ├── OkHttpAsyncTracingInterceptorTest.java │ │ │ ├── OkHttpForwardedInterceptorTest.java │ │ │ ├── OkHttpTestUtils.java │ │ │ ├── OkHttpTracingInterceptorTest.java │ │ │ └── TestConst.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── pom.xml │ ├── rabbitmq/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── rabbitmq/ │ │ │ ├── RabbitMqConsumerMetric.java │ │ │ ├── RabbitMqPlugin.java │ │ │ ├── RabbitMqProducerMetric.java │ │ │ ├── RabbitMqRedirectPlugin.java │ │ │ ├── spring/ │ │ │ │ ├── RabbitMqMessageListenerAdvice.java │ │ │ │ └── interceptor/ │ │ │ │ ├── RabbitMqMessageListenerOnMessageInterceptor.java │ │ │ │ ├── RabbitMqOnMessageMetricInterceptor.java │ │ │ │ └── RabbitMqOnMessageTracingInterceptor.java │ │ │ └── v5/ │ │ │ ├── advice/ │ │ │ │ ├── RabbitMqChannelAdvice.java │ │ │ │ ├── RabbitMqConfigFactoryAdvice.java │ │ │ │ ├── RabbitMqConsumerAdvice.java │ │ │ │ └── RabbitMqPropertyAdvice.java │ │ │ └── interceptor/ │ │ │ ├── RabbitMqChannelConsumeInterceptor.java │ │ │ ├── RabbitMqChannelConsumerDeliveryInterceptor.java │ │ │ ├── RabbitMqChannelPublishInterceptor.java │ │ │ ├── RabbitMqConsumerHandleDeliveryInterceptor.java │ │ │ ├── metirc/ │ │ │ │ ├── RabbitMqConsumerMetricInterceptor.java │ │ │ │ └── RabbitMqProducerMetricInterceptor.java │ │ │ ├── redirect/ │ │ │ │ ├── RabbitMqConfigFactoryInterceptor.java │ │ │ │ └── RabbitMqPropertyInterceptor.java │ │ │ └── tracing/ │ │ │ ├── RabbitMqChannelPublishTracingInterceptor.java │ │ │ └── RabbitMqConsumerTracingInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── rabbitmq/ │ │ │ ├── RabbitMqConsumerMetricTest.java │ │ │ ├── RabbitMqProducerMetricTest.java │ │ │ ├── TestUtils.java │ │ │ ├── spring/ │ │ │ │ └── interceptor/ │ │ │ │ ├── RabbitMqMessageListenerOnMessageInterceptorTest.java │ │ │ │ ├── RabbitMqOnMessageMetricInterceptorTest.java │ │ │ │ └── RabbitMqOnMessageTracingInterceptorTest.java │ │ │ └── v5/ │ │ │ └── interceptor/ │ │ │ ├── MockConsumer.java │ │ │ ├── RabbitMqChannelConsumeInterceptorTest.java │ │ │ ├── RabbitMqChannelConsumerDeliveryInterceptorTest.java │ │ │ ├── RabbitMqChannelPublishInterceptorTest.java │ │ │ ├── RabbitMqConsumerHandleDeliveryInterceptorTest.java │ │ │ ├── metirc/ │ │ │ │ ├── RabbitMqConsumerMetricInterceptorTest.java │ │ │ │ └── RabbitMqProducerMetricInterceptorTest.java │ │ │ ├── redirect/ │ │ │ │ └── RabbitMqPropertyInterceptorTest.java │ │ │ └── tracing/ │ │ │ ├── RabbitMqChannelPublishTracingInterceptorTest.java │ │ │ └── RabbitMqConsumerTracingInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── redis/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── redis/ │ │ │ ├── RedisPlugin.java │ │ │ ├── RedisRedirectPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── JedisAdvice.java │ │ │ │ ├── JedisConstructorAdvice.java │ │ │ │ ├── LettuceRedisClientAdvice.java │ │ │ │ ├── RedisChannelWriterAdvice.java │ │ │ │ ├── RedisClusterClientAdvice.java │ │ │ │ ├── RedisPropertiesAdvice.java │ │ │ │ ├── RedisPropertiesClusterAdvice.java │ │ │ │ └── StatefulRedisConnectionAdvice.java │ │ │ └── interceptor/ │ │ │ ├── RedisClassUtils.java │ │ │ ├── RedisClientUtils.java │ │ │ ├── initialize/ │ │ │ │ ├── CommonRedisClientInterceptor.java │ │ │ │ ├── CompletableFutureWrapper.java │ │ │ │ ├── ConnectionFutureWrapper.java │ │ │ │ ├── RedisClientInterceptor.java │ │ │ │ └── RedisClusterClientInterceptor.java │ │ │ ├── metric/ │ │ │ │ ├── CommonRedisMetricInterceptor.java │ │ │ │ ├── JedisMetricInterceptor.java │ │ │ │ └── LettuceMetricInterceptor.java │ │ │ ├── redirect/ │ │ │ │ ├── JedisConstructorInterceptor.java │ │ │ │ ├── LettuceRedisClientConstructInterceptor.java │ │ │ │ ├── RedisPropertiesClusterSetNodesInterceptor.java │ │ │ │ └── RedisPropertiesSetPropertyInterceptor.java │ │ │ └── tracing/ │ │ │ ├── CommonRedisTracingInterceptor.java │ │ │ ├── JedisTracingInterceptor.java │ │ │ ├── LettuceTracingInterceptor.java │ │ │ └── StatefulRedisConnectionInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── redis/ │ │ │ └── interceptor/ │ │ │ ├── RedisUtils.java │ │ │ ├── TestConst.java │ │ │ ├── initialize/ │ │ │ │ ├── CommonRedisClientInterceptorTest.java │ │ │ │ ├── CompletableFutureWrapperTest.java │ │ │ │ ├── ConnectionFutureWrapperTest.java │ │ │ │ └── DynamicFieldAccessorObj.java │ │ │ ├── metric/ │ │ │ │ ├── CommonRedisMetricInterceptorTest.java │ │ │ │ ├── JedisMetricInterceptorTest.java │ │ │ │ └── LettuceMetricInterceptorTest.java │ │ │ ├── redirect/ │ │ │ │ ├── JedisConstructorInterceptorTest.java │ │ │ │ ├── LettuceRedisClientConstructInterceptorTest.java │ │ │ │ ├── RedisPropertiesClusterSetNodesInterceptorTest.java │ │ │ │ └── RedisPropertiesSetPropertyInterceptorTest.java │ │ │ └── tracing/ │ │ │ ├── CommonRedisTracingInterceptorTest.java │ │ │ ├── JedisTracingInterceptorTest.java │ │ │ └── LettuceTracingInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── servicename/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── servicename/ │ │ │ ├── Const.java │ │ │ ├── ReflectionTool.java │ │ │ ├── ServiceNamePlugin.java │ │ │ ├── ServiceNamePluginConfig.java │ │ │ ├── advice/ │ │ │ │ ├── FeignBlockingLoadBalancerClientAdvice.java │ │ │ │ ├── FeignLoadBalancerAdvice.java │ │ │ │ ├── FilteringWebHandlerAdvice.java │ │ │ │ ├── LoadBalancerFeignClientAdvice.java │ │ │ │ ├── RestTemplateInterceptAdvice.java │ │ │ │ └── WebClientFilterAdvice.java │ │ │ └── interceptor/ │ │ │ ├── BaseServiceNameInterceptor.java │ │ │ ├── FeignBlockingLoadBalancerClientInterceptor.java │ │ │ ├── FeignLoadBalancerInterceptor.java │ │ │ ├── FilteringWebHandlerInterceptor.java │ │ │ ├── LoadBalancerFeignClientInterceptor.java │ │ │ ├── RestTemplateInterceptInterceptor.java │ │ │ └── WebClientFilterInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── megaease/ │ │ │ │ └── easeagent/ │ │ │ │ └── plugin/ │ │ │ │ └── servicename/ │ │ │ │ ├── ReflectionToolTest.java │ │ │ │ └── interceptor/ │ │ │ │ ├── BaseServiceNameInterceptorTest.java │ │ │ │ ├── CheckUtils.java │ │ │ │ ├── FeignBlockingLoadBalancerClientInterceptorTest.java │ │ │ │ ├── FeignLoadBalancerInterceptorTest.java │ │ │ │ ├── FilteringWebHandlerInterceptorTest.java │ │ │ │ ├── LoadBalancerFeignClientInterceptorTest.java │ │ │ │ ├── RestTemplateInterceptInterceptorTest.java │ │ │ │ ├── TestConst.java │ │ │ │ └── WebClientFilterInterceptorTest.java │ │ │ └── org/ │ │ │ └── springframework/ │ │ │ ├── cloud/ │ │ │ │ └── openfeign/ │ │ │ │ └── ribbon/ │ │ │ │ └── MockRibbonRequest.java │ │ │ └── web/ │ │ │ └── reactive/ │ │ │ └── function/ │ │ │ └── client/ │ │ │ └── MockClientRequest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── sofarpc/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── sofarpc/ │ │ │ ├── SofaRpcCtxUtils.java │ │ │ ├── SofaRpcMetricsTags.java │ │ │ ├── SofaRpcPlugin.java │ │ │ ├── SofaRpcTraceTags.java │ │ │ ├── adivce/ │ │ │ │ ├── BoltFutureInvokeCallbackConstructAdvice.java │ │ │ │ ├── ConsumerAdvice.java │ │ │ │ ├── FutureInvokeCallbackConstructAdvice.java │ │ │ │ ├── ProviderAdvice.java │ │ │ │ ├── ResponseCallbackAdvice.java │ │ │ │ └── ResponseFutureAdvice.java │ │ │ ├── config/ │ │ │ │ └── SofaRpcTraceConfig.java │ │ │ └── interceptor/ │ │ │ ├── initalize/ │ │ │ │ └── SofaRpcFutureInvokeCallbackConstructInterceptor.java │ │ │ ├── metrics/ │ │ │ │ ├── SofaRpcMetrics.java │ │ │ │ ├── SofaRpcMetricsBaseInterceptor.java │ │ │ │ ├── callback/ │ │ │ │ │ ├── SofaRpcResponseCallbackMetrics.java │ │ │ │ │ └── SofaRpcResponseCallbackMetricsInterceptor.java │ │ │ │ ├── common/ │ │ │ │ │ └── SofaRpcMetricsInterceptor.java │ │ │ │ └── future/ │ │ │ │ └── SofaRpcResponseFutureMetricsInterceptor.java │ │ │ └── trace/ │ │ │ ├── SofaRpcTraceBaseInterceptor.java │ │ │ ├── callback/ │ │ │ │ ├── SofaRpcResponseCallbackTrace.java │ │ │ │ └── SofaRpcResponseCallbackTraceInterceptor.java │ │ │ ├── common/ │ │ │ │ ├── SofaClientTraceRequest.java │ │ │ │ ├── SofaRpcConsumerTraceInterceptor.java │ │ │ │ ├── SofaRpcProviderTraceInterceptor.java │ │ │ │ └── SofaServerTraceRequest.java │ │ │ └── future/ │ │ │ └── SofaRpcResponseFutureTraceInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── sofarpc/ │ │ │ └── interceptor/ │ │ │ ├── BaseInterceptorTest.java │ │ │ ├── MockBoltResponseFuture.java │ │ │ ├── metrics/ │ │ │ │ ├── BaseMetricsInterceptorTest.java │ │ │ │ ├── callback/ │ │ │ │ │ ├── MockSofaResponseCallback.java │ │ │ │ │ └── SofaRpcResponseCallbackMetricsInterceptorTest.java │ │ │ │ ├── common/ │ │ │ │ │ └── SofaRpcMetricsInterceptorTest.java │ │ │ │ └── future/ │ │ │ │ └── SofaRpcResponseFutureMetricsInterceptorTest.java │ │ │ └── trace/ │ │ │ ├── callback/ │ │ │ │ ├── MockSofaResponseCallback.java │ │ │ │ └── SofaRpcResponseCallbackTraceInterceptorTest.java │ │ │ ├── common/ │ │ │ │ ├── SofaRpcConsumerTraceInterceptorTest.java │ │ │ │ └── SofaRpcProviderTraceInterceptorTest.java │ │ │ └── future/ │ │ │ └── SofaRpcResponseFutureTraceInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── spring-boot-3.5.3/ │ │ ├── pom.xml │ │ ├── spring-boot-gateway-3.5.3/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── easeagent/ │ │ │ │ └── plugin/ │ │ │ │ └── spring353/ │ │ │ │ └── gateway/ │ │ │ │ ├── AccessPlugin.java │ │ │ │ ├── ForwardedPlugin.java │ │ │ │ ├── GatewayCons.java │ │ │ │ ├── SpringGatewayPlugin.java │ │ │ │ ├── advice/ │ │ │ │ │ ├── AgentGlobalFilterAdvice.java │ │ │ │ │ ├── HttpHeadersFilterAdvice.java │ │ │ │ │ └── InitGlobalFilterAdvice.java │ │ │ │ ├── interceptor/ │ │ │ │ │ ├── TimeUtils.java │ │ │ │ │ ├── forwarded/ │ │ │ │ │ │ └── GatewayServerForwardedInterceptor.java │ │ │ │ │ ├── initialize/ │ │ │ │ │ │ ├── AgentGlobalFilter.java │ │ │ │ │ │ └── GlobalFilterInterceptor.java │ │ │ │ │ ├── log/ │ │ │ │ │ │ ├── GatewayAccessLogInterceptor.java │ │ │ │ │ │ └── SpringGatewayAccessLogServerInfo.java │ │ │ │ │ ├── metric/ │ │ │ │ │ │ └── GatewayMetricsInterceptor.java │ │ │ │ │ └── tracing/ │ │ │ │ │ ├── FluxHttpServerRequest.java │ │ │ │ │ ├── FluxHttpServerResponse.java │ │ │ │ │ ├── GatewayServerTracingInterceptor.java │ │ │ │ │ └── HttpHeadersFilterTracingInterceptor.java │ │ │ │ └── reactor/ │ │ │ │ ├── AgentCoreSubscriber.java │ │ │ │ └── AgentMono.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── easeagent/ │ │ │ │ └── plugin/ │ │ │ │ └── spring353/ │ │ │ │ └── gateway/ │ │ │ │ ├── TestConst.java │ │ │ │ ├── TestServerWebExchangeUtils.java │ │ │ │ ├── interceptor/ │ │ │ │ │ ├── TimeUtilsTest.java │ │ │ │ │ ├── forwarded/ │ │ │ │ │ │ └── GatewayServerForwardedInterceptorTest.java │ │ │ │ │ ├── initialize/ │ │ │ │ │ │ ├── AgentGlobalFilterTest.java │ │ │ │ │ │ └── GlobalFilterInterceptorTest.java │ │ │ │ │ ├── log/ │ │ │ │ │ │ ├── GatewayAccessLogInfoInterceptorTest.java │ │ │ │ │ │ └── SpringGatewayAccessLogInfoServerInfoTest.java │ │ │ │ │ ├── metric/ │ │ │ │ │ │ ├── GatewayMetricsInterceptorTest.java │ │ │ │ │ │ └── MockRouteBuilder.java │ │ │ │ │ └── tracing/ │ │ │ │ │ ├── FluxHttpServerRequestTest.java │ │ │ │ │ ├── FluxHttpServerResponseTest.java │ │ │ │ │ ├── GatewayServerTracingInterceptorTest.java │ │ │ │ │ └── HttpHeadersFilterTracingInterceptorTest.java │ │ │ │ └── reactor/ │ │ │ │ ├── AgentCoreSubscriberTest.java │ │ │ │ ├── AgentMonoTest.java │ │ │ │ └── MockCoreSubscriber.java │ │ │ └── resources/ │ │ │ └── mock_agent.properties │ │ ├── spring-boot-rest-template-3.5.3/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── megaease/ │ │ │ │ └── easeagent/ │ │ │ │ └── plugin/ │ │ │ │ └── rest/ │ │ │ │ └── template/ │ │ │ │ ├── ForwardedPlugin.java │ │ │ │ ├── RestTemplatePlugin.java │ │ │ │ ├── advice/ │ │ │ │ │ └── ClientHttpRequestAdvice.java │ │ │ │ └── interceptor/ │ │ │ │ ├── forwarded/ │ │ │ │ │ └── RestTemplateForwardedInterceptor.java │ │ │ │ └── tracing/ │ │ │ │ └── ClientHttpRequestInterceptor.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── megaease/ │ │ │ │ │ └── easeagent/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── rest/ │ │ │ │ │ └── template/ │ │ │ │ │ └── interceptor/ │ │ │ │ │ ├── TestConst.java │ │ │ │ │ ├── forwarded/ │ │ │ │ │ │ └── RestTemplateForwardedInterceptorTest.java │ │ │ │ │ └── tracing/ │ │ │ │ │ └── ClientHttpRequestInterceptorTest.java │ │ │ │ └── org/ │ │ │ │ └── springframework/ │ │ │ │ └── http/ │ │ │ │ └── client/ │ │ │ │ └── SimpleClientHttpResponseFactory.java │ │ │ └── resources/ │ │ │ └── mock_agent.properties │ │ └── spring-boot-servicename-3.5.3/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── servicename/ │ │ │ └── springboot353/ │ │ │ ├── Const.java │ │ │ ├── ReflectionTool.java │ │ │ ├── ServiceNamePlugin.java │ │ │ ├── ServiceNamePluginConfig.java │ │ │ ├── advice/ │ │ │ │ ├── FeignClientLoadBalancerClientAdvice.java │ │ │ │ ├── FilteringWebHandlerAdvice.java │ │ │ │ ├── RestTemplateInterceptAdvice.java │ │ │ │ └── WebClientFilterAdvice.java │ │ │ └── interceptor/ │ │ │ ├── BaseServiceNameInterceptor.java │ │ │ ├── FeignClientLoadBalancerClientInterceptor.java │ │ │ ├── FilteringWebHandlerInterceptor.java │ │ │ ├── RestTemplateInterceptInterceptor.java │ │ │ └── WebClientFilterInterceptor.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── servicename/ │ │ │ └── springboot353/ │ │ │ ├── ReflectionToolTest.java │ │ │ └── interceptor/ │ │ │ ├── BaseServiceNameInterceptorTest.java │ │ │ ├── CheckUtils.java │ │ │ ├── FeignBlockingLoadBalancerClientInterceptorTest.java │ │ │ ├── FilteringWebHandlerInterceptorTest.java │ │ │ ├── RestTemplateInterceptInterceptorTest.java │ │ │ ├── TestConst.java │ │ │ └── WebClientFilterInterceptorTest.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── spring-gateway/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── spring/ │ │ │ └── gateway/ │ │ │ ├── AccessPlugin.java │ │ │ ├── ForwardedPlugin.java │ │ │ ├── SpringGatewayPlugin.java │ │ │ ├── advice/ │ │ │ │ ├── AgentGlobalFilterAdvice.java │ │ │ │ ├── CodeCons.java │ │ │ │ ├── HttpHeadersFilterAdvice.java │ │ │ │ └── InitGlobalFilterAdvice.java │ │ │ ├── interceptor/ │ │ │ │ ├── GatewayCons.java │ │ │ │ ├── initialize/ │ │ │ │ │ ├── AgentGlobalFilter.java │ │ │ │ │ ├── GatewayServerForwardedInterceptor.java │ │ │ │ │ └── GlobalFilterInterceptor.java │ │ │ │ ├── metric/ │ │ │ │ │ ├── GatewayMetricsInterceptor.java │ │ │ │ │ ├── TimeUtils.java │ │ │ │ │ └── log/ │ │ │ │ │ ├── GatewayAccessLogInterceptor.java │ │ │ │ │ └── SpringGatewayAccessLogServerInfo.java │ │ │ │ └── tracing/ │ │ │ │ ├── FluxHttpServerRequest.java │ │ │ │ ├── FluxHttpServerResponse.java │ │ │ │ ├── GatewayServerTracingInterceptor.java │ │ │ │ └── HttpHeadersFilterTracingInterceptor.java │ │ │ └── reactor/ │ │ │ ├── AgentCoreSubscriber.java │ │ │ └── AgentMono.java │ │ └── test/ │ │ ├── java/ │ │ │ └── easeagent/ │ │ │ └── plugin/ │ │ │ └── spring/ │ │ │ └── gateway/ │ │ │ ├── TestConst.java │ │ │ ├── TestServerWebExchangeUtils.java │ │ │ ├── interceptor/ │ │ │ │ ├── initialize/ │ │ │ │ │ ├── AgentGlobalFilterTest.java │ │ │ │ │ ├── GatewayServerForwardedInterceptorTest.java │ │ │ │ │ └── GlobalFilterInterceptorTest.java │ │ │ │ ├── metric/ │ │ │ │ │ ├── GatewayMetricsInterceptorTest.java │ │ │ │ │ ├── MockRouteBuilder.java │ │ │ │ │ ├── TimeUtilsTest.java │ │ │ │ │ └── log/ │ │ │ │ │ ├── GatewayAccessLogInfoInterceptorTest.java │ │ │ │ │ └── SpringGatewayAccessLogInfoServerInfoTest.java │ │ │ │ └── tracing/ │ │ │ │ ├── FluxHttpServerRequestTest.java │ │ │ │ ├── FluxHttpServerResponseTest.java │ │ │ │ ├── GatewayServerTracingInterceptorTest.java │ │ │ │ └── HttpHeadersFilterTracingInterceptorTest.java │ │ │ └── reactor/ │ │ │ ├── AgentCoreSubscriberTest.java │ │ │ ├── AgentMonoTest.java │ │ │ └── MockCoreSubscriber.java │ │ └── resources/ │ │ └── mock_agent.properties │ ├── springweb/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── megaease/ │ │ │ │ ├── easeagent/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── springweb/ │ │ │ │ │ ├── FeignClientPlugin.java │ │ │ │ │ ├── ForwardedPlugin.java │ │ │ │ │ ├── RestTemplatePlugin.java │ │ │ │ │ ├── SpringWebPlugin.java │ │ │ │ │ ├── WebClientPlugin.java │ │ │ │ │ ├── advice/ │ │ │ │ │ │ ├── ClientHttpRequestAdvice.java │ │ │ │ │ │ ├── FeignClientAdvice.java │ │ │ │ │ │ ├── WebClientBuilderAdvice.java │ │ │ │ │ │ └── WebClientFilterAdvice.java │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ ├── HeadersFieldFinder.java │ │ │ │ │ │ ├── forwarded/ │ │ │ │ │ │ │ ├── FeignClientForwardedInterceptor.java │ │ │ │ │ │ │ ├── RestTemplateForwardedInterceptor.java │ │ │ │ │ │ │ └── WebClientFilterForwardedInterceptor.java │ │ │ │ │ │ ├── initialize/ │ │ │ │ │ │ │ └── WebClientBuildInterceptor.java │ │ │ │ │ │ └── tracing/ │ │ │ │ │ │ ├── ClientHttpRequestInterceptor.java │ │ │ │ │ │ ├── FeignClientTracingInterceptor.java │ │ │ │ │ │ └── WebClientFilterTracingInterceptor.java │ │ │ │ │ └── reactor/ │ │ │ │ │ ├── AgentCoreSubscriber.java │ │ │ │ │ └── AgentMono.java │ │ │ │ └── plugin/ │ │ │ │ └── easeagent/ │ │ │ │ └── springweb/ │ │ │ │ └── interceptor/ │ │ │ │ └── tracing/ │ │ │ │ └── WebClientTracingFilter.java │ │ │ └── resources/ │ │ │ └── application.yaml │ │ └── test/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── megaease/ │ │ │ │ └── easeagent/ │ │ │ │ └── plugin/ │ │ │ │ └── springweb/ │ │ │ │ ├── interceptor/ │ │ │ │ │ ├── HeadersFieldFinderTest.java │ │ │ │ │ ├── RequestUtils.java │ │ │ │ │ ├── TestConst.java │ │ │ │ │ ├── forwarded/ │ │ │ │ │ │ ├── FeignClientForwardedInterceptorTest.java │ │ │ │ │ │ ├── RestTemplateForwardedInterceptorTest.java │ │ │ │ │ │ └── WebClientFilterForwardedInterceptorTest.java │ │ │ │ │ ├── initialize/ │ │ │ │ │ │ └── WebClientBuildInterceptorTest.java │ │ │ │ │ └── tracing/ │ │ │ │ │ ├── ClientHttpRequestInterceptorTest.java │ │ │ │ │ ├── FeignClientTracingInterceptorTest.java │ │ │ │ │ └── WebClientFilterTracingInterceptorTest.java │ │ │ │ └── reactor/ │ │ │ │ ├── AgentCoreSubscriberTest.java │ │ │ │ ├── AgentMonoTest.java │ │ │ │ ├── MockCoreSubscriber.java │ │ │ │ └── MockMono.java │ │ │ └── org/ │ │ │ └── springframework/ │ │ │ ├── http/ │ │ │ │ └── client/ │ │ │ │ └── SimpleClientHttpResponseFactory.java │ │ │ └── web/ │ │ │ └── reactive/ │ │ │ └── function/ │ │ │ └── client/ │ │ │ ├── MockClientRequest.java │ │ │ └── MockDefaultClientResponse.java │ │ └── resources/ │ │ └── mock_agent.properties │ └── tomcat-jdk17/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── plugin/ │ │ └── tomcat/ │ │ ├── AccessPlugin.java │ │ ├── ForwardedPlugin.java │ │ ├── TomcatPlugin.java │ │ ├── advice/ │ │ │ └── FilterChainPoints.java │ │ ├── interceptor/ │ │ │ ├── BaseServletInterceptor.java │ │ │ ├── FilterChainForwardedInterceptor.java │ │ │ ├── FilterChainMetricInterceptor.java │ │ │ ├── FilterChainTraceInterceptor.java │ │ │ ├── HttpServerRequest.java │ │ │ ├── TomcatAccessLogServerInfo.java │ │ │ └── TomcatHttpLogInterceptor.java │ │ └── utils/ │ │ ├── InternalAsyncListener.java │ │ └── ServletUtils.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── plugin/ │ │ └── tomcat/ │ │ └── interceptor/ │ │ ├── BaseServletInterceptorTest.java │ │ ├── FilterChainForwardedInterceptorTest.java │ │ ├── FilterChainMetricInterceptorTest.java │ │ ├── FilterChainTraceInterceptorTest.java │ │ ├── HttpServerRequestTest.java │ │ ├── ServletAccessLogInfoServerInfoTest.java │ │ ├── TestConst.java │ │ ├── TestServletUtils.java │ │ └── TomcatHttpLogInterceptorTest.java │ └── resources/ │ └── mock_agent.properties ├── pom.xml ├── release ├── report/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ ├── com/ │ │ │ └── megaease/ │ │ │ └── easeagent/ │ │ │ └── report/ │ │ │ ├── AgentReportAware.java │ │ │ ├── DefaultAgentReport.java │ │ │ ├── GlobalExtractor.java │ │ │ ├── OutputProperties.java │ │ │ ├── ReportConfigChange.java │ │ │ ├── async/ │ │ │ │ ├── AsyncProps.java │ │ │ │ ├── AsyncReporter.java │ │ │ │ ├── AsyncReporterMetrics.java │ │ │ │ ├── DefaultAsyncReporter.java │ │ │ │ ├── log/ │ │ │ │ │ ├── AccessLogReporter.java │ │ │ │ │ ├── ApplicationLogReporter.java │ │ │ │ │ └── LogAsyncProps.java │ │ │ │ ├── trace/ │ │ │ │ │ ├── SDKAsyncReporter.java │ │ │ │ │ └── TraceAsyncProps.java │ │ │ │ └── zipkin/ │ │ │ │ ├── AgentBufferNextMessage.java │ │ │ │ ├── AgentByteBoundedQueue.java │ │ │ │ └── WithSizeConsumer.java │ │ │ ├── encoder/ │ │ │ │ ├── PackedMessage.java │ │ │ │ ├── log/ │ │ │ │ │ ├── AccessLogJsonEncoder.java │ │ │ │ │ ├── AccessLogWriter.java │ │ │ │ │ ├── LogDataJsonEncoder.java │ │ │ │ │ ├── LogDataWriter.java │ │ │ │ │ └── pattern/ │ │ │ │ │ ├── LogDataDatePatternConverterDelegate.java │ │ │ │ │ ├── LogDataLevelPatternConverter.java │ │ │ │ │ ├── LogDataLineSeparatorPatternConverter.java │ │ │ │ │ ├── LogDataLoggerPatternConverter.java │ │ │ │ │ ├── LogDataMdcPatternConverter.java │ │ │ │ │ ├── LogDataPatternConverter.java │ │ │ │ │ ├── LogDataPatternFormatter.java │ │ │ │ │ ├── LogDataSimpleLiteralPatternConverter.java │ │ │ │ │ ├── LogDataThreadNamePatternConverter.java │ │ │ │ │ ├── LogDataThrowablePatternConverter.java │ │ │ │ │ ├── NamePatternConverter.java │ │ │ │ │ ├── NoOpPatternConverter.java │ │ │ │ │ └── SimpleMessageConverter.java │ │ │ │ ├── metric/ │ │ │ │ │ └── MetricJsonEncoder.java │ │ │ │ └── span/ │ │ │ │ ├── AbstractAgentV2SpanEndpointWriter.java │ │ │ │ ├── AgentV2SpanAnnotationsWriter.java │ │ │ │ ├── AgentV2SpanBaseWriter.java │ │ │ │ ├── AgentV2SpanGlobalWriter.java │ │ │ │ ├── AgentV2SpanLocalEndpointWriter.java │ │ │ │ ├── AgentV2SpanRemoteEndpointWriter.java │ │ │ │ ├── AgentV2SpanTagsWriter.java │ │ │ │ ├── AgentV2SpanWriter.java │ │ │ │ ├── GlobalExtrasSupplier.java │ │ │ │ ├── SpanJsonEncoder.java │ │ │ │ └── okhttp/ │ │ │ │ ├── HttpSpanJsonEncoder.java │ │ │ │ └── OkHttpJsonRequestBody.java │ │ │ ├── metric/ │ │ │ │ ├── MetricItem.java │ │ │ │ ├── MetricProps.java │ │ │ │ └── MetricReporterFactoryImpl.java │ │ │ ├── plugin/ │ │ │ │ ├── NoOpCall.java │ │ │ │ ├── NoOpEncoder.java │ │ │ │ ├── ReporterLoader.java │ │ │ │ └── ReporterRegistry.java │ │ │ ├── sender/ │ │ │ │ ├── AgentKafkaSender.java │ │ │ │ ├── AgentLoggerSender.java │ │ │ │ ├── NoOpSender.java │ │ │ │ ├── SenderConfigDecorator.java │ │ │ │ ├── SenderWithEncoder.java │ │ │ │ ├── ZipkinCallWrapper.java │ │ │ │ ├── metric/ │ │ │ │ │ ├── KeySender.java │ │ │ │ │ ├── MetricKafkaSender.java │ │ │ │ │ └── log4j/ │ │ │ │ │ ├── AppenderManager.java │ │ │ │ │ ├── LoggerFactory.java │ │ │ │ │ ├── MetricRefreshableAppender.java │ │ │ │ │ ├── RefreshableAppender.java │ │ │ │ │ └── TestableAppender.java │ │ │ │ └── okhttp/ │ │ │ │ ├── ByteRequestBody.java │ │ │ │ ├── HttpCall.java │ │ │ │ └── HttpSender.java │ │ │ ├── trace/ │ │ │ │ ├── Platform.java │ │ │ │ ├── RefreshableReporter.java │ │ │ │ ├── ReportSpanBuilder.java │ │ │ │ └── TraceReport.java │ │ │ └── util/ │ │ │ ├── SpanUtils.java │ │ │ ├── TextUtils.java │ │ │ └── Utils.java │ │ └── zipkin2/ │ │ └── reporter/ │ │ ├── TracerConverter.java │ │ ├── brave/ │ │ │ ├── ConvertSpanReporter.java │ │ │ └── ConvertZipkinSpanHandler.java │ │ └── kafka11/ │ │ ├── SDKKafkaSender.java │ │ ├── SDKSender.java │ │ └── SimpleSender.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── report/ │ │ ├── HttpSenderTest.java │ │ ├── async/ │ │ │ └── zipkin/ │ │ │ └── AgentByteBoundedQueueTest.java │ │ ├── encoder/ │ │ │ └── log/ │ │ │ ├── LogDataJsonEncoderTest.java │ │ │ └── LogDataWriterTest.java │ │ ├── metric/ │ │ │ ├── MetricPropsTest.java │ │ │ └── MetricReporterFactoryTest.java │ │ ├── sender/ │ │ │ ├── AgentKafkaSenderTest.java │ │ │ └── metric/ │ │ │ └── log4j/ │ │ │ └── AppenderManagerTest.java │ │ ├── trace/ │ │ │ └── TraceReportTest.java │ │ └── utils/ │ │ └── UtilsTest.java │ └── resources/ │ └── sender/ │ ├── outputServer_disabled.json │ ├── outputServer_empty_bootstrapServer_disabled.json │ ├── outputServer_empty_bootstrapServer_enabled.json │ └── outputServer_enabled.json ├── resources/ │ ├── rootfs/ │ │ └── Dockerfile │ └── scripts/ │ ├── Jenkinsfile │ └── build-image.sh └── zipkin/ ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── megaease/ │ │ └── easeagent/ │ │ └── zipkin/ │ │ ├── CustomTagsSpanHandler.java │ │ ├── TracingProviderImpl.java │ │ ├── impl/ │ │ │ ├── AsyncRequest.java │ │ │ ├── MessageImpl.java │ │ │ ├── RemoteGetterImpl.java │ │ │ ├── RemoteSetterImpl.java │ │ │ ├── RequestContextImpl.java │ │ │ ├── ScopeImpl.java │ │ │ ├── SpanContextImpl.java │ │ │ ├── SpanImpl.java │ │ │ ├── TracingImpl.java │ │ │ └── message/ │ │ │ ├── MessagingTracingImpl.java │ │ │ ├── ZipkinConsumerRequest.java │ │ │ └── ZipkinProducerRequest.java │ │ └── logging/ │ │ ├── AgentLogMDC.java │ │ ├── AgentMDCScopeDecorator.java │ │ └── LogUtils.java │ └── resources/ │ └── META-INF/ │ └── services/ │ └── com.megaease.easeagent.plugin.bean.BeanProvider └── test/ └── java/ ├── brave/ │ ├── TracerTestUtils.java │ └── internal/ │ └── collect/ │ └── WeakConcurrentMapTestUtils.java └── com/ └── megaease/ └── easeagent/ └── zipkin/ ├── CustomTagsSpanHandlerTest.java ├── TracingProviderImplMock.java ├── TracingProviderImplTest.java ├── impl/ │ ├── AsyncRequestTest.java │ ├── MessageImplTest.java │ ├── MessagingRequestMock.java │ ├── RemoteGetterImplTest.java │ ├── RemoteSetterImplTest.java │ ├── RequestContextImplTest.java │ ├── RequestMock.java │ ├── ScopeImplTest.java │ ├── SpanContextImplTest.java │ ├── SpanImplTest.java │ ├── TracingImplTest.java │ └── message/ │ ├── MessagingTracingImplTest.java │ ├── ZipkinConsumerRequestTest.java │ └── ZipkinProducerRequestTest.java └── logging/ ├── AgentLogMDCTest.java ├── AgentMDCScopeDecoratorTest.java └── LogUtilsTest.java