Aeron:Aeron Agent

Aeron Agent 是一个 Java 代理,用于提供 Aeron、Aeron Archive 和 Aeron Cluster 中发生的运行时低级日志信息。这些日志语句包括从高级管理员事件到大容量数据帧事件。

在调试 Archive 和 Cluster 问题时,Aeron Agent 的日志数据尤其有用。

一、Available logging options

Environment VariableOptions
aeron.event.log以逗号分隔的 DriverEventCodes 列表,或 admin 表示所有管理事件,或 all 表示所有事件(Comma separated list of DriverEventCodes, or admin for all admin events, or all for everything)
aeron.event.archive.log以逗号分隔的 ArchiveEventCodes 列表,或all表示所有事件(Comma separated list of ArchiveEventCodes, or all for everything)
aeron.event.cluster.log以逗号分隔的ClusterEventCodes列表,或all表示所有事件(Comma separated list of ClusterEventCodes, or all for everything)

 此外,您还可以通过为 aeron.event.log.filename 赋值,将输出记录到文件中,而不是默认的 std out。

二、Attaching to a process on start(启动时附加到进程)

正如 Aeron Cookbook 示例中的启动脚本所示,在启动时将 Aeron Agent 附加到进程非常简单:

java --add-opens java.base/sun.nio.ch=ALL-UNNAMED \
-javaagent:/root/aeron/aeron-agent-1.42.0.jar \
-Djava.net.preferIPv4Stack=true \
-Daeron.event.log=admin \
-Daeron.event.archive.log=all \
-jar /root/jar/archive-backup-0.1-SNAPSHOT-all.jar

See GitHub for the full sample.

三、Dynamic Logging Agent

使用 Aeron 1.33.0+ 中添加的Dynamic Logging Agent,可以轻松地将代理附加到运行中的进程。

Steps:

  1. 在启动需要检测的 Aeron 进程之前,必须通过环境变量或 -D 参数(如 -Daeron.event.log=admin)让 aeron 代理知道要捕获什么,从而定义需要捕获的事件。有关可用选项,请参见上文。(Before launching the Aeron process you want instrumented, you must define the events you are interested in capturing by letting aeron agent know what to capture either via environment variables or via -D arguments, such as -Daeron.event.log=admin. See above for the available options.)
  2. 在要检测的进程已经运行的情况下,获取 PID(With the process to instrument already running, get the PID)
  3. 使用启动(start)命令启动 io.aeron.agent.DynamicLoggingAgent。(Launch the io.aeron.agent.DynamicLoggingAgent with the start command.)

 Sample command line

To start logging in a process with PID 42945:

java -cp /path-to/aeron-all-1.42.0.jar io.aeron.agent.DynamicLoggingAgent /path-to/aeron-agent-1.42.0.jar 42945 start

四、Sample output

最左侧 [ and ] 中的值是事件的时间戳,定义为当前时间戳(纳秒)除以 1,000,000,000。这意味着小数点前的值是以秒为单位的,因此从初始行项目 [76948.355606523] log started 2021-04-17 14:26:41.710-0400可以推算出 [76958.678426732] 处的事件发生在 14:26:41.710 + 10.323s = 14:26:52.033 左右。10.323s76948.35576958.678 之间的差值。数据源是 System.nanoTime(),它与wall time无关,只能用于相对时间。

这是一个集群节点(RFQ 示例)的示例片段,aeron.event.log 设置为all

[76948.355606523] log started 2021-04-17 14:26:41.710-0400
[76958.678426732] DRIVER: FRAME_IN [52/52]: 127.0.0.1:55443 SETUP 00000000 len 40 2073747220:101:905418016 905418016 @0 16777216 MTU 1408 TTL 0
[76958.685011759] DRIVER: CMD_OUT_AVAILABLE_IMAGE [147/147]: 2073747220:101 [57:48] [49] /var/folders/aeron-driver/images/49.logbuffer 127.0.0.1:55443
[76958.685099301] DRIVER: FRAME_OUT [48/48]: 127.0.0.1:55443 SM 00000000 len 36 2073747220:101:905418016 @0 131072 -4489607960779398291
[76958.686931252] DRIVER: FRAME_IN [44/44]: 127.0.0.1:55443 DATA 11000000 len 0 2073747220:101:905418016 @0
[76958.687164768] DRIVER: FRAME_IN [140/140]: 127.0.0.1:55443 DATA 11000000 len 98 2073747220:101:905418016 @0
[76958.694589747] DRIVER: CMD_IN_ADD_PUBLICATION [58/58]: 102 [7:50] aeron:udp?endpoint=localhost:57377
[76958.69499685] DRIVER: SEND_CHANNEL_CREATION [92/92]: UdpChannel - localData: 0.0.0.0/0.0.0.0:0, remoteData: localhost/127.0.0.1:57377, ttl: 0
[76958.697468817] DRIVER: CMD_OUT_PUBLICATION_READY [138/138]: -74825448:102 75 65 [50 50] /var/folders/aeron-driver/publications/50.logbuffer
[76958.697569264] DRIVER: FRAME_OUT [52/52]: 127.0.0.1:57377 SETUP 00000000 len 40 -74825448:102:728163187 728163187 @0 16777216 MTU 1408 TTL 0
[76958.758041065] DRIVER: FRAME_IN [48/48]: 127.0.0.1:57377 SM 00000000 len 36 -74825448:102:728163187 @0 131072 -985368778043801883
[76958.758666168] DRIVER: FRAME_OUT [44/44]: 127.0.0.1:57377 DATA 11000000 len 0 -74825448:102:728163187 @0
[76958.7652581] DRIVER: FRAME_OUT [108/108]: 127.0.0.1:57377 DATA 11000000 len 80 -74825448:102:728163187 @0
[76958.765445077] DRIVER: CMD_IN_ADD_PUBLICATION [58/58]: 102 [21:51] aeron:udp?endpoint=localhost:57377
[76958.765583608] DRIVER: CMD_OUT_PUBLICATION_READY [138/138]: -74825448:102 75 65 [51 50] /var/folders/aeron-driver/publications/50.logbuffer
[76958.773609799] DRIVER: FRAME_IN [108/108]: 127.0.0.1:55443 DATA 11000000 len 90 2073747220:101:905418016 @128
[76958.77373172] DRIVER: FRAME_IN [140/140]: 127.0.0.1:55443 DATA 11000000 len 102 2073747220:101:905418016 @224
[76958.775272352] DRIVER: FRAME_OUT [140/140]: 127.0.0.1:57377 DATA 11000000 len 118 -74825448:102:728163187 @96
[76958.777991182] DRIVER: FRAME_IN [108/108]: 127.0.0.1:55443 DATA 11000000 len 92 2073747220:101:905418016 @352
[76958.780923987] DRIVER: FRAME_OUT [140/140]: 127.0.0.1:57377 DATA 11000000 len 100 -74825448:102:728163187 @224
[76958.783483437] DRIVER: FRAME_IN [108/108]: 127.0.0.1:55443 DATA 11000000 len 88 2073747220:101:905418016 @448
[76958.786164552] DRIVER: FRAME_OUT [140/140]: 127.0.0.1:57377 DATA 11000000 len 104 -74825448:102:728163187 @352
[76958.788915601] DRIVER: FRAME_IN [76/76]: 127.0.0.1:55443 DATA 11000000 len 56 2073747220:101:905418016 @544
[76958.789200034] DRIVER: CMD_IN_REMOVE_PUBLICATION [24/24]: 50 [7:52]
[76958.789237205] DRIVER: CMD_OUT_ON_OPERATION_SUCCESS [8/8]: 52
[76958.790866084] DRIVER: CMD_IN_REMOVE_PUBLICATION [24/24]: 51 [21:53]
[76958.790904905] DRIVER: CMD_OUT_ON_OPERATION_SUCCESS [8/8]: 53
[76958.875888058] DRIVER: FRAME_OUT [48/48]: 127.0.0.1:55443 SM 00000000 len 36 2073747220:101:905418016 @0 131072 -4489607960779398291
[76958.886665327] DRIVER: FRAME_OUT [44/44]: 127.0.0.1:57377 DATA 11100000 len 0 -74825448:102:728163187 @480
[76958.987313678] DRIVER: FRAME_OUT [44/44]: 127.0.0.1:57377 DATA 11100000 len 0 -74825448:102:728163187 @480
[76959.076562784] DRIVER: FRAME_OUT [48/48]: 127.0.0.1:55443 SM 00000000 len 36 2073747220:101:905418016 @0 131072 -4489607960779398291
[76959.088009394] DRIVER: FRAME_OUT [44/44]: 127.0.0.1:57377 DATA 11100000 len 0 -74825448:102:728163187 @480
[76959.188642945] DRIVER: FRAME_OUT [44/44]: 127.0.0.1:57377 DATA 11100000 len 0 -74825448:102:728163187 @480

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/718403.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Excel VLOOKUP 使用记录

Excel VLOOKUP 使用记录 VLOOKUP简单使用 VLOOKUP(lookup_value,table_array,col_index_num,[range-lookup]) 下面是excel对VLOOKUP 的解释 lookup_value(查找值):要匹配查找的值 table_array(数据表)&#xff1…

基于(C++)VTK9.3.0+Microsoft Visual Studio2017的DICOM影像VR体绘制完整实现代码

开发基于(C)VTK9.3.0Microsoft Visual Studio2017的DICOM影像VR体绘制程序的前提是: 1、已编译完成VTK9.3.0,可在VTK官网下载VTK9.3.0源码,官网下载地址:Download | VTK 选择所需的VTK版本进行下载 具体编…

图片的大小如何改变?有效率改图片大小的方法

图片怎么将改变图片大小呢?现在经常在使用图片的时候需要先按照上传平台的要求来修改尺寸和大小,将图片调整到满足使用的大小之后然后上传使用。那么如何在线改变图片大小呢,有一个很简单的方法能够快速在线改图片大小,今天小编将…

c++ 编译过程杂记等

开篇一张图。 编译器 把我们的代码翻译成机器语言 ​ gcc编译程序的过程 gcc编译程序主要经过四个过程: 四个过程说明: ​ 预处理实际上是将头文件、宏进行展开。 编译阶段,gcc调用不同语言的编译器,例如c语言调用编译器ccl…

示例:WPF中绑定枚举到ComboBox的方式

一、目的:在开发过程中,经常会需要把枚举绑定到ComboxBox下拉列表中,其实方法有很多,这里面通过MarkupExtension扩展GetEnumSourceExtension去绑定到列表 二、实现 定义GetEnumSourceExtension类 public class GetEnumSourceExte…

FLAN-T5模型的文本摘要任务

Text Summarization with FLAN-T5 — ROCm Blogs (amd.com) 在这篇博客中,我们展示了如何使用HuggingFace在AMD GPU ROCm系统上对语言模型FLAN-T5进行微调,以执行文本摘要任务。 介绍 FLAN-T5是谷歌发布的一个开源大型语言模型,相较于之前的…

一文彻底理解机器学习 ROC-AUC 指标

在机器学习和数据科学的江湖中,评估模型的好坏是非常关键的一环。而 ROC(Receiver Operating Characteristic)曲线和 AUC(Area Under Curve)正是评估分类模型性能的重要工具。 这个知识点在面试中也很频繁的出现。尽管…

springboot+vue+mybatis酒店房间管理系统+PPT+论文+讲解+售后

随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多商家的眼球之中,他们利用网络来做这个电商的服务,随之就产生了“酒店房间管理系统”,这样就让人们酒店房间管理系统更加方便简单。 对于本酒店房间管理系统的…

深浅拷贝以及正则表达式(python)

浅拷贝和深拷贝: 浅拷贝: copy函数是浅拷贝,支队可变类型的第一层对象进行拷贝,对拷贝的对象开辟显得内存空间进行存储,不会拷贝对象内部的子对象 不可变类型的浅拷贝示例: 浅拷贝不会对不可变类型进行…

飞天茅台酒的惊魂五日

“电商百亿补贴修改发货规则”导致黄牛资金压力剧增,资金压力之下部分黄牛择低价甩卖,其他求货的酒行、大酒商则选择观望,价格下行压力最终扩散,造成整个回收市场踩踏,价格急速下跌。 不到半年时间,飞天茅台…

FreeRtos-09事件组的使用

1. 事件组的理论讲解 事件组:就是通过一个整数的bit位来代表一个事件,几个事件的or和and的结果是输出 #define configUSE_16_BIT_TICKS 0 //configUSE_16_BIT_TICKS用1表示16位,用0表示32位 1.1 事件组适用于哪些场景 某个事件若干个事件中的某个事件若干个事件中的所有事…

MySQL常见的命令

MySQL常见的命令 查看数据库(注意添加分号) show databases;进入到某个库 use 库; 例如:进入test use test;显示表格 show tables;直接展示某个库里面的表 show tables from 库; 例如:展示mysql中的表格 show tabl…

免费无版权可商用资源|自媒体创业者、设计师、电商商家必备

1.前言 小伙伴们大家好,欢迎来到天夏Ai,这里专注于分享人工智能精品资源:Ai副业项目、Ai效率神器!和你一起共享Ai信息,分享Ai副业项目资源,开启智能副业赚钱新时代! 今天为大家分享免费无版权可…

【UE5.1】制作自己的载具

目录 前言 效果 步骤 一、制作载具模型 二、载具设置 三、控制载具 前言 在前面我们通过UE4完成了载具的制作,下面我们介绍一下如何通过UE5制作载具。 效果 步骤 一、制作载具模型 制作方法同【UE4 制作自己的载具】1-使用3dsmax制作载具 二、载具设置 …

SpringBootWeb 篇-入门了解 Apache POI 使用方法

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Apache POI 概述 2.0 使用 Apache POI 读写 Excel 文件 2.1 写入 Excel 文件 2.2 写入 Excel 文件代码演示 2.3 读取 Excel 文件 2.4 读取 Excel 文件代码演示 1.…

List, Set, Map, Queue介绍

Java集合框架是一组接口和实现这些接口的类的集合,它提供了对数据集合的高效率存储和操作。以下是Java集合框架中一些核心接口的介绍: 1.List: List是一个有序的集合,允许包含重复的元素。它提供了按插入顺序访问元素的方法&…

openGauss 6.0高可用测试,系统上线前很关键

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

安卓网络通信(多线程、HTTP访问、图片加载、即时通信)

本章介绍App开发常用的以下网络通信技术,主要包括:如何以官方推荐的方式使用多线程技术,如何通过okhttp实现常见的HTTP接口访问操作,如何使用Dlide框架加载网络图片,如何分别运用SocketIO和WebSocket实现及时通信功能等…

全平台无水印下载软件【电脑版】

支持抖音,快手,小红书,电脑PC端使用。 链接:https://pan.baidu.com/s/1969HwHNyqYL_GJtB0n0G_w?pwd2sjn 提取码:2sjn

RedHat9 | Web服务配置与管理(Apache)

一、实验环境 1、Apache服务介绍 Apache服务,也称为Apache HTTP Server,是一个功能强大且广泛使用的Web服务器软件。 起源和背景 Apache起源于NCSA httpd服务器,经过多次修改和发展,逐渐成为世界上最流行的Web服务器软件之一。…