我试图稍后将数据发送到azure事件中心,以供流分析和PowerBI使用。
我在测试事件中心时,我的C#应用程序正在发送一个简单的测试字符串(JSON格式),但是当我想在事件中心中处理数据时,它告诉我没有数据发送。
我不确定如何调试集线器,以查看为什么未显示该消息,我尝试在google上找到调试文档,但在搜索调试天蓝色事件集线器时却没有找到
如何找到与此有关的任何错误消息?
出于测试目的,我的C#代码得到了简化
private async Task SendMessageToEventHub(string messageToSend)
{
var connectionStringBuilder = new EventHubsConnectionStringBuilder(EventHubConnectionString)
{
EntityPath = EventHubName
};
eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());
try
{
await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(messageToSend)));
} catch (Exception exception) {
_logger.LogInformation($"-PimLog- -ProductInfoController- {DateTime.Now}, > Exception: {exception.Message} ");
}
_logger.LogInformation($"-PimLog- -ProductInfoController- {DateTime.Now}, EventHub Message Sent Successfully ");
}
我确实看到了消息已成功发送的日志消息,所以那里没有明显的错误。
当我尝试在azure门户中运行查询时,收到以下消息
There is no data from input 'pimhub'. Please make sure the input source has data and then try again.
如何进一步调试?
答案 0 :(得分:1)
根据我的经验,我一直使用Azure门户指标来调试事件中心和流分析链。
首先,您应该转到事件中心概述,并检查输出请求的数量是否与输入请求的数量相同,如下图所示:
Morehover,请检查“用户错误”和“服务器错误”指标,以查看是否发送了没有错误的事件。 如果所有指标均正常,则应检查流分析。使用指标来检查是否存在以下错误之一
我还注意到,门户网站经常无法捕获来自EH的事件以测试ASA查询(如您所述)。坦白地说,我不知道为什么,但是一个技巧可能是复制要发送到文件中的json对象,然后使用“从文件上传示例数据”选项(ASA->查询- ->输入)。
希望有帮助
答案 1 :(得分:0)
要调试消息是否确实在事件中心中-并且以您期望的格式进行调试,Service Bus Explorer工具非常有用:https://github.com/paolosalvatori/ServiceBusExplorer(与顾名思义一样,它也完全支持事件中心)。
如果消息在那里显示,但您仍未在ASA中收到消息,请仔细检查您在ASA中输入的连接设置,尤其是诸如消费方组之类的东西(您应该有一个专用的消费方组来执行ASA工作) )。
答案 2 :(得分:0)