Azure / azure-iot-explorer

Cross-platform UI for interacting with devices attached to Azure IoT Hub. This tool is meant for learning and testing, not for production environment.
MIT License
224 stars 73 forks source link

[BUG] Unable to get Telemetry for device using default event hub #551

Closed wiggydave10 closed 2 years ago

wiggydave10 commented 2 years ago

I'm new into looking at the Azure IoT and was attempting to follow the guide here. I have created my IoT Hub and downloaded the latest version of IoT Explorer, however I was having trouble viewing the telemetry in IoT Explorer. I kept getting an issue indicating it can't connect to the event hub which I'm just using the default built it. I've downgraded to each version until I got to v0.14.12 before it started working for me.

Steps to reproduce: 1) Create a free tier of IoT Hub in Azure Portal 2) Download any version of IoT Explorer from v0.14.13 - v0.15.0 3) Connect IoT Explorer using the connection string for iothubowner 4) Add a device with Test001 as the deviceId 5) Go to Telemetry 6) Click Start See: Error Expect: Connect and see telemetry like in v0.14.12

It is possible I am doing something wrong but I just followed the guide and it didn't work.

Failed to start monitoring device telemetry: Error: "The messaging entity 'sb://....servicebus.windows.net/.../$management' could not be found. To know more visit https://aka.ms/sbResourceMgrExceptions. TrackingId:3ef1fdc8-301b-4b12-bb34-4d269c692581_G6, SystemTracker:....servicebus.windows.net:.../$management, Timestamp:2022-09-16T14:10:51"

wiggydave10 commented 2 years ago

I have just done some digging in issues and realise that #541 is exactly what happened to me, but in v0.14.14 instead of saying [object,object] it gives the rest of the error above.

YingXue commented 2 years ago

Hi Wiggy, yes starting in v0.14.14, we fixed the error message, and I am at least happy to see that you are able to get the error message for us to triage, thank you! As the error message is indicating with a trackingId, it is directly surfaced from the IoT Hub Service (or possibly Event Hub Service). I would recommend file a bug to the service team. Azure Portal is one of the ways to contact the support. When you file the bug, please share the trackingId, the error message, and also share that you are not able to connect using the built in event hub. But if you have verified that you can get the telemetry when implictly providing the event hub name and event hub connection string (which is also the workaround we provided in #541), please mention that when you filed the bug.

wiggydave10 commented 2 years ago

@YingXue thanks for the reply. Do you need to have a support package for Azure? I can seem to report the bug unless I have a support package.

YingXue commented 2 years ago

@wiggydave10 I am not quite sure what support package indicates. I was trying to create a support ticket and the following screenshot can be a sample, where in additional details you can fill in the repro steps and the tracking id image

wiggydave10 commented 2 years ago

@YingXue so I filled that through and get some "Recommended solutions" which don't assist in anything, however if I continue to the next step I only get "Get expert help from $29/month" or "Ask our community". I've tried asking the community since and will see if thats the way to report it but I'm not fully sure where to report bugs for Azure things 😂 Thanks for your guidance so far. image

YingXue commented 2 years ago

Hi @wiggydave10 I have been contacted by a service team member, I am glad that you found the way to contact the service team. I will close the issue since this is an exclusive issue to your hub as I have been told. And I have also learned that Microsoft Q&A forum would be the place if you have further questions. I will be happy to reopen the issue if there is anything else we can help : )

wiggydave10 commented 2 years ago

Thanks for the help @YingXue. Yes it seems like its the Azure IoT Hub thats the problem as the latest version worked with their hub. Hopefully we can get to the bottom of it

robertyung001 commented 2 years ago

@wiggydave10 So did MS support resolve your issue?

Now I'm questioning if IoT Explorer is using the correct Event Hub path. The error message says it can't find: sb://iothub-ns-[part of my hub name]-[some numbers].servicebus.windows.net/[full iot hub name]/$management

But when I look at my iot hub > Built-in endpoints > event hub-compatible name, the name is there is not the full name but truncated after 25 characters. So should the Event hub path be: sb://iothub-ns-[part of my hub name]-[some numbers].servicebus.windows.net/[event hub-compatible name]/$management ?

If I go to the first url with my browser, I get a generic response that mentions "Publicly Listed Services" and "Service Bus 1.1". Changing any portion of the url path gets the same response.

But if I go to the second url, which substitutes the full iot hub name with the event hub compatible one, the response is an error on "MissingToken", meaning the path hit something and it wants to authenticate.

So perhaps there is a bug with IoT Explorer where it assumes the event hub path uses the full name of the iot hub when instead it should get the event hub compatible name from the hub first.

YingXue commented 2 years ago

Hi @robertyung001 With users login through Explorer using connection string, the tool does not have permission to get event hub connection string. Connection string only gets data plane access, while this information is stored in control plane in iot hub. Instead, what we use is EventHub's node sdk, which give us a method to connect to them using iot hub connection string in which case the tool itself does not do any conversion. And if it fails, we fall back to use another SDK method which does the conversion (and looking into the details, it is also event hub's endpoint that it is calling into). In both cases, we are going to transfer the ticket to event hub's sdk team.

FYI, we've got another icm that got reported has the opposite issue as what you see, “For some reason, IoT Explorer is looking for "iotCPCscus-DT-Data-HERM-Dev" instead of "iotcpcscus-dt-data-herm-d" which is the built-in endpoint of the IoT Hub they are trying to connect IoT Explorer to.”

robertyung001 commented 2 years ago

It’s not an opposite issue because that’s my ticket (support engineer is James)! Did I explain it wrong and cause confusion?

From: YingXue @.> Sent: Thursday, October 6, 2022 12:28 PM To: Azure/azure-iot-explorer @.> Cc: Yung, Robert K @.>; Mention @.> Subject: Re: [Azure/azure-iot-explorer] [BUG] Unable to get Telemetry for device using default event hub (Issue #551)

This mail has been sent from an external source

Hi @robertyung001https://github.com/robertyung001 With users login through Explorer using connection string, the tool does not have permission to get event hub connection string. Connection string only gets data plane access, while this information is stored in control plane in iot hub. Instead, what we use is EventHub's node sdk, which give us a method to connect to them using iot hub connection string in which case the tool itself does not do any conversion. And if it fails, we fall back to use another SDK method which does the conversion. In both cases if there is a bug, we can inform the support to help transfer the ticket to event hub's sdk team.

FYI, we've got another icm that got reported has the opposite issue as what you see, “For some reason, IoT Explorer is looking for "iotCPCscus-DT-Data-HERM-Dev" instead of "iotcpcscus-dt-data-herm-d" which is the built-in endpoint of the IoT Hub they are trying to connect IoT Explorer to.”

— Reply to this email directly, view it on GitHubhttps://github.com/Azure/azure-iot-explorer/issues/551#issuecomment-1270369394, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADJXKTVQYPRR73UQ5AZSX6DWB34YXANCNFSM6AAAAAAQOL4TCM. You are receiving this because you were mentioned.Message ID: @.**@.>> This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.

wiggydave10 commented 2 years ago

Hi, I've had replies back from the support team saying they are fixing the underlying issue and will provide further information. I will await further updates and see if it fixes the issue.

YingXue commented 2 years ago

@robertyung001 No worries and it's good that we have the opposite data point, which confirms that the issue is the Event hub sdk itself, and now the ticket has been transferred and being taken care of by our dependency team. We will up the thread once we hear anything back.

TechWatching commented 2 years ago

I have the same error, yet I thought it was not related to the SDK and now that I read the comments, I don't know what to think. Indeed, if I download a previous version (0.14.5.0 for instance) of the Azure IoT explorer it works fine. Is it because the IoT Hub explorer now uses a newer version of the Event Hub SDK?

Another thing I was wondering was: is it fine that the event hub path contains "$management" at the end? Shouldn't this be $Default as there is not consumer group $management in the built-in event-hub.

wiggydave10 commented 2 years ago

I've been told that an update to the IoTHub sample has been released, however I think the problem has been misunderstood. I for one didn't use JS and two didn't even write any code regarding connecting to the IoTHub.

Is this something that needs to be changed in IoT Explorer?

Heres the links: PR: https://github.com/Azure/azure-sdk-for-js/pull/23527 Commit: https://github.com/Azure/azure-sdk-for-js/commit/46f60fb7d7cca2d294fe0b971a30765140957721

Since the update I've been told to try again, however I'm not fully sure how a sample being updated would fix my problem especially when all I do is open IoT Explorer and it doesn't load. I am yet to retry this as I haven't had time, but thought I'd give feedback here too.

YingXue commented 2 years ago

Hi, we use their sample in this app to convert iot hub connection strings (that users use to login to) to event hub connection string, and pull telemetry from event hub. I've tried their latest sample, but the same error repros. Our team is following up with them, but it does not look this issue has been addressed. I will follow up again.

YingXue commented 2 years ago

https://github.com/Azure/azure-iot-explorer/releases/tag/v0.15.1 has addressed the issue. Event hub's sdk fixes has been incorporated.