- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
在使用Azure Service Bus的时候,我们可以根据Queue中目前存在的消息数来判断当前消息是否有积压的情况.
但是,在Event Hub中,因为所有消息都会被存留到预先设定的保留时间(默认是7天), 所以无法通过消息数来判断当前的消息是否有积压或者是有多余重复消费.
当消费端出现异常情况,在没有incoming的情况下,还是存在大量的outgoing,这种情况如何来提前预警呢?是否可以通过设置告警规则来及时通知运维人员呢?
如下图这样Outgoing 大于 incoming的情况 。
。
。
在Azure服务中,PaaS资源都可以根据指标数据来设置告警,但是这是基于该服务有这类型指标的情况.
。
如现在Event Hub中 Outgoing Message 和Incoming Message不匹配的情况,由于Event Hub自身的指标中,并没有一个指标表示 Outgoing 与 Incoming 之间的差距值。 如果需要知道两个指标间的差值,就需要从收集的Metrics指标中进行自定义查询语句,并根据结果进行阈值设定.
。
详细步骤,可参考官网: https://docs.azure.cn/zh-cn/event-hubs/monitor-event-hubs#log-analytics 。
。
示例Kusto语句 。
AzureMetrics | where ResourceProvider == "MICROSOFT.EVENTHUB" | where MetricName == "EHOUTMSGS" or MetricName == "EHINMSGS" | project TimeGenerated, MetricName, Total, TimeGrain | evaluate pivot(MetricName, sum (Total)):(TimeGenerated: datetime , EHOUTMSGS: long , EHINMSGS: long ,AlertValue: long ) | project TimeGenerated,EHOUTMSGS, EHINMSGS, AlertValue = abs (EHOUTMSGS - EHINMSGS)
1: EHOUTMSGS 表示Event Hub Outgoing Messages 统计值 。
2: EHINMSGS表示 Event Hub Incoming Messages 统计值 。
3: pivot 函数执行把多行数据转换为多列。此处通过MetricsName的值的不同而转换为 EHOUTMSGS 和 EHINMSGS 两列,并且根据TimeGenerated时间值进行Total统计。在同一个时间点的数据归并为一行数据.
4:AlertValue = abs(EHOUTMSGS - EHINMSGS), 计算差值并取绝对值,然结果显示为正 。
。
在Alert Logic 部分中,这是阈值即可。这里也是触发Alert的关键点,需要根据实际情况来决定一个合理的值.
。
。
【结束】 。
。
| evaluate pivot(MetricName,sum(Total)):(TimeGenerated:datetime, EHOUTMSGS:long, EHINMSGS:long,AlertValue:long) 。
添加OutputSchema的目的就为了避免查询结构体中缺少了需要统计的字段值而报错('project' operator: Failed to resolve scalar expression named 'EHINMSGS' I).
如下效果对比:
。
最后此篇关于【AzureEventHub】自定义告警(AlertRule)用来提示EventHub的消息incoming(生产)与outgoing(消费)的异常情况的文章就讲到这里了,如果你想了解更多关于【AzureEventHub】自定义告警(AlertRule)用来提示EventHub的消息incoming(生产)与outgoing(消费)的异常情况的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
该特定代码块的最后一行产生错误“需要左值作为赋值的左操作数”。令人困惑的是为什么最后一行抛出此错误,而倒数第二行却没有。 int p2 = 0; spage = find(in
我想从有金额表的收入表中获取总收入金额 @ColumnInfo(name = "Amount") private int amount; 在我的 IncomeDao 中 @Query("S
我使用emsdk在Ubuntu 14.04 Docker容器上安装了Emscripten,如下所示: emsdk install emscripten-incoming emsdk install c
来自 rust 标准网络库: let listener = TcpListener::bind(("127.0.0.1", port)).unwrap(); info!("Opened socket
我将函数应用配置为期望来自客户端的证书。我今天在 Azure 门户中没有看到该选项。你知道突然发生了什么吗? 最佳答案 顺便说一句,现在该选项已移至“设置”->“配置”->“常规设置”->“需要传入证
我在 docker 容器上运行 fluentd 图像。当我使用 telnet(或 netcat)打开 TCP 连接并发送“消息”字符串时,会出现以下消息: 2017-01-24 10:22:00 +0
是否可以在可穿戴 Android 应用程序中监听传入通知?我尝试实现 NotificationListenerService,但该服务的 onNotificationPosted() 从未被调用: p
我在我的 Slack 工作区中创建了一个传入 Webhook。我正在使用第三方工具将 JSON 对象发布到 Hook url。我想向@user_1 发送通知 我的问题是通知发送到我和该用户@user_
我想在我的 Android 设备上使用 iptables 阻止所有传入连接。我知道 Google 应用程序,如 Play 商店等,需要一些传入连接(例如 GTalkSerivice),它们在阻塞后将不
我正在尝试构建一个基本数据库来帮助筛选许多 CSV 银行交易。 我已经将我所有的交易导入到多个表格中,这些表格来自不同的账户,这些账户的“扣除”列我已经勾选了“假”或“真” 我正在尝试执行“创建 Vi
这个问题在这里已经有了答案: 关闭 11 年前。
我正在使用 arduino,我想储存一些来自网络服务的字符。代码将自行解释: void loop() { static int i = 0; static int count = 0;
我可以在 Scapy 中只嗅探传入或传出数据包吗? 没有在数据包字段上添加过滤器。 最佳答案 简短的回答:没有。 Scapy 的嗅探功能不区分传入和传出数据包。如果你想根据源mac过滤,你可以这样做:
我在 J2ME 工作,想制作一个应用程序来阻止来自某些特定号码的来电。是否可以使用 J2ME 中的编程来阻止某些号码? 最佳答案 不,在 J2ME 中绝对没有办法做到这一点。 关于java - J2M
我有一个应用程序 android,它向服务器 (PC) 发送数据,但我没有收到从 PC 到应用程序的任何数据。而且,我怎样才能为传入的 UDP 消息做一个监听器? 因为我需要一个应用程序即使关闭也能一
我正在测试的单元是一个 IHostedService,它使用来自 Microsoft.Azure.ServiceBus 的 IQueueClient 进行通信。据我所知,没有像 .Receive()
IntelliJ IDEA 提供了一个 Preview Diff用于显示更改的压缩 View 的传出更改。我找不到 的等效项传入更改 .每个单个文件都必须在一个额外的窗口中与以前的修订版或本地更改进行
我正在使用连接在 10G 以太网链路上的专用硬件。我有一些关于处理传入数据报的问题,如下: 如果 NIC 发现不正确的链路级以太网 CRC 会怎样?一些搜索表明错误可能不会被可靠地报告(例如 here
我目前正在编写某种框架,允许其他人为其编写 REST Controller 。当然,我希望那些“其他人”尽可能少地与我的代码中发生的事情进行交互。 具体来说,我想要并且需要访问请求数据(即在请求由其余
我想使用 Google Drive Android API 列出和访问用户的传入项目,但我在 Drive API documentation 中找不到任何方法来执行此操作。 。我只知道如何从屏幕截图中
我是一名优秀的程序员,十分优秀!