当前位置: 首页 > news >正文

网上商城开发网站建设宣传网站设计

网上商城开发网站建设,宣传网站设计,做的很好的淘宝客网站,网站建设公司主要Apache SkyWalking 是一个开源的应用性能监控 (APM) 工具#xff0c;支持分布式系统的追踪、监控和诊断。SkyWalking Agent 是其中的一个重要组件#xff0c;用于在服务端应用中收集性能数据和追踪信息#xff0c;并将其发送到 SkyWalking 后端服务器进行处理和展示。 SkyW…Apache SkyWalking 是一个开源的应用性能监控 (APM) 工具支持分布式系统的追踪、监控和诊断。SkyWalking Agent 是其中的一个重要组件用于在服务端应用中收集性能数据和追踪信息并将其发送到 SkyWalking 后端服务器进行处理和展示。 SkyWalking Agent 的工作原理 启动时加载 Agent SkyWalking Agent 通过 Java Agent 机制在 JVM 启动时加载。用户需要在启动应用时添加 -javaagent 参数指定 SkyWalking Agent 的 JAR 文件。 java -javaagent:/path/to/skywalking-agent.jar -jar your-application.jar 字节码增强 SkyWalking Agent 使用字节码增强技术基于字节码操作库如 ASM来修改应用程序的类文件以插入监控代码。这些代码会在方法调用、数据库访问、HTTP 请求等关键点收集性能数据。 拦截方法调用 通过字节码增强Agent 拦截应用程序中的特定方法调用如 HTTP 请求、数据库查询等。在方法开始前、方法结束后和异常抛出时Agent 会记录相关信息。 收集性能数据和追踪信息 拦截的方法调用会生成追踪数据这些数据包括 方法执行的开始时间和结束时间方法执行的耗时调用链上下文信息如 Trace ID、Span ID方法的输入输出参数和异常信息 数据缓冲和发送 收集到的数据会暂时存储在 Agent 的内存中并定期批量发送到 SkyWalking 后端服务器。为了减少对应用程序性能的影响数据发送通常是异步进行的。 后端处理和展示 SkyWalking 后端服务器接收到数据后会对其进行处理、存储并在 Web UI 中展示。用户可以通过 Web UI 查看服务的调用链、性能指标、错误信息等。 SkyWalking Agent 的关键组件 Agent Core负责 Agent 的初始化、配置加载和生命周期管理。Plugin SystemSkyWalking Agent 提供了插件系统支持不同类型的 middleware、framework 的插件如 HTTP、Dubbo、Spring、MyBatis 等。这些插件定义了如何拦截特定的框架方法收集性能数据。Tracing Context管理调用链上下文包括 Trace ID 和 Span ID 的生成和传递。Reporter负责将收集到的数据发送到 SkyWalking 后端服务器。 自己实现一个java agent  Java Agent 是 Java Instrumentation API 的一个强大功能它允许你在运行时修改 Java 应用程序的行为。它们通常用于性能分析、监控和修改应用程序的执行。 自己实现一个 实现一个 Java Agent 来监控 JDBC SQL 执行时间 步骤 1创建 Java Agent 创建 Agent 类 该类将实现 premain 方法来进行类的插桩。 import java.lang.instrument.Instrumentation; import java.lang.instrument.ClassFileTransformer; import java.security.ProtectionDomain;public class SqlTimingAgent {public static void premain(String agentArgs, Instrumentation inst) {System.out.println(SQL Timing Agent loaded);inst.addTransformer(new SqlTimingTransformer());} }创建 Transformer 类 该类将对 java.sql.Statement 和 java.sql.PreparedStatement 的 execute* 方法进行插桩。 import java.lang.instrument.ClassFileTransformer; import java.security.ProtectionDomain; import java.lang.instrument.IllegalClassFormatException; import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod;public class SqlTimingTransformer implements ClassFileTransformer {Overridepublic byte[] transform(ClassLoader loader, String className, Class? classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {if (className.equals(java/sql/Statement) || className.equals(java/sql/PreparedStatement)) {return transformSQLClass(className, classfileBuffer);}return classfileBuffer;}private byte[] transformSQLClass(String className, byte[] classfileBuffer) {try {ClassPool cp ClassPool.getDefault();CtClass cc cp.get(className.replace(/, .));for (CtMethod m : cc.getDeclaredMethods()) {if (m.getName().startsWith(execute)) {addTiming(m);}}return cc.toBytecode();} catch (Exception e) {e.printStackTrace();}return classfileBuffer;}private void addTiming(CtMethod method) throws Exception {method.addLocalVariable(startTime, CtClass.longType);method.insertBefore(startTime System.currentTimeMillis(););method.insertAfter(System.out.println(\SQL Execute Time: \ (System.currentTimeMillis() - startTime) \ ms\););} } 步骤 2创建 Manifest 文件 创建一个 MANIFEST.MF 文件来指定代理类。 Manifest-Version: 1.0 Premain-Class: SqlTimingAgent 步骤 3将 Agent 打包为 JAR 编译你的代理类和 Transformer 类并将它们与 manifest 文件一起打包到 JAR 文件中。 javac SqlTimingAgent.java SqlTimingTransformer.java jar cfm SqlTimingAgent.jar MANIFEST.MF SqlTimingAgent.class SqlTimingTransformer.class 步骤 4使用 Java Agent 在启动 Java 应用程序时使用 -javaagent 选项指定代理 JAR 文件。 java -javaagent:SqlTimingAgent.jar -jar YourApplication.jar 示例解释 SqlTimingAgent 类 premain 方法在 JVM 启动时被调用添加 SqlTimingTransformer 作为类文件转换器。 SqlTimingTransformer 类 该类实现了 ClassFileTransformer 接口对 java.sql.Statement 和 java.sql.PreparedStatement 类进行转换。在 transform 方法中检查类名是否是 Statement 或 PreparedStatement并调用 transformSQLClass 方法。transformSQLClass 方法使用 Javassist 库修改类的字节码对 execute* 方法添加时间记录代码。 字节码修改 在 execute* 方法开始前记录当前时间。在方法结束后计算并输出 SQL 执行时间。 通过这些步骤你可以创建和使用 Java Agent 来监控 JDBC SQL 执行时间。
http://www.w-s-a.com/news/998685/

相关文章:

  • 免费的开源网站wordpress建站不好用
  • 陕西建设厅人才网站ai生成logo免费
  • 建设家居网站村建站什么部门
  • 网站建设+青海龙岗区网站建设
  • 精品课网站建设网络公司名字怎么取
  • 化工网站制作用户体验设计案例
  • 如何在微信公众平台上建立微网站垂直门户网站怎么做
  • 关于销售网站有哪些内容品牌网站建设小科6a蚪
  • 免费制作网站平台哪个好湖南企业建网站
  • 灞桥微网站建设株洲百姓网
  • 儿童网站建设互联网怎么学
  • 重庆建网站的公司集中在哪里中煤第五建设有限公司网站
  • 成都网站建设987net运维需要掌握哪些知识
  • 网站建设师个人简介怎么写WordPress头像美化插件
  • 网站优化知识销售管理系统c语言
  • 桂林市网站设计厦门自己建网站
  • 网站seo哪里做的好东莞做网站优化的公司
  • 休闲采摘园网站建设政务公开和网站建设工作的建议
  • 长沙网站建设哪个公司好PHP amp MySQL网站建设宝典
  • 代码编辑器做热点什么网站好湛江网站建设哪家好
  • php网站开发概念网站开发岗位职责任职责格
  • asp 网站源码 下载西安自适应网站建设
  • 白领兼职做网站贵阳网站设计哪家好
  • 热水器网站建设 中企动力企业网站开发需要多钱
  • 北京市建设工程信息网交易网站静态网页模板免费下载网站
  • 福田欧曼服务站网站前台设计
  • 网站做系统叫什么软件吗注册域名需要实名认证吗
  • jsp网站开发教学视频ui设计风格
  • 注册网站建设开发怎么自己做导航网站
  • 设计做网站品牌咖啡主题网页界面设计