如何调试Azure EventHubs?

时间:2019-08-15 10:37:32

标签: c# azure azure-eventhub

我试图稍后将数据发送到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.

如何进一步调试?

3 个答案:

答案 0 :(得分:1)

根据我的经验,我一直使用Azure门户指标来调试事件中心和流分析链。

首先,您应该转到事件中心概述,并检查输出请求的数量是否与输入请求的数量相同,如下图所示:

enter image description here

Morehover,请检查“用户错误”和“服务器错误”指标,以查看是否发送了没有错误的事件。 如果所有指标均正常,则应检查流分析。使用指标来检查是否存在以下错误之一

  1. 数据转换错误-> Stream Analytics尝试保存到te输出时出错
  2. 输入反序列化错误->大多数情况下是查询错误
  3. 运行时错误->必须进行调查

我还注意到,门户网站经常无法捕获来自EH的事件以测试ASA查​​询(如您所述)。坦白地说,我不知道为什么,但是一个技巧可能是复制要发送到文件中的json对象,然后使用“从文件上传示例数据”选项(ASA->查询- ->输入)。

希望有帮助

答案 1 :(得分:0)

要调试消息是否确实在事件中心中-并且以您期望的格式进行调试,Service Bus Explorer工具非常有用:https://github.com/paolosalvatori/ServiceBusExplorer(与顾名思义一样,它也完全支持事件中心)。

如果消息在那里显示,但您仍未在ASA中收到消息,请仔细检查您在ASA中输入的连接设置,尤其是诸如消费方组之类的东西(您应该有一个专用的消费方组来执行ASA工作) )。

答案 2 :(得分:0)

为了使用Azure流分析查询查看数据,必须首先部署查询。

Azure Stream Analytics Query

完成此操作后,您需要打开查询并通过单击“选择时间范围”来设置要查询的样本数据的时间范围。

Azure Stream Analytics - Select Time Range

您现在应该可以使用查询工具查询数据。

Azure Stream Analytics - Query Restults