microsoft / botframework-solutions

Welcome to the Bot Framework Solutions repository which is the home for a set of templates and solutions to help build advanced conversational experiences using Azure Bot Service and Bot Framework. Microsoft Bot Framework is a comprehensive framework for building enterprise-grade conversational AI experiences.
https://aka.ms/bfsolutionsdocs
MIT License
1.05k stars 530 forks source link

Data source error: DataSource.Error: <pii>Web.Contents failed to get contents from (long url here) 400): Bad Request. The exception was raised by the IDbCommand interface. Table: EventTelemetry. #3839

Closed bfranco95 closed 3 years ago

bfranco95 commented 3 years ago

What project is affected?

We are building a chatbot and utilizing the Analytics template for Power BI.

What happens?

Attempting to open the Power BI dashboard which has worked previously.

We get the following error:

Data source error: DataSource.Error: Web.Contents failed to get contents from 'https://api.loganalytics.io/v1/apps/a498620c-e2f1-4170-ab89-cb2412790836/query?query=customEvents%0A%7C%20project%20%0AActivityId%20%3D%20customDimensions.activityId%2C%20%0AActivityType%20%3D%20customDimensions.activityType%2C%0AChannelId%20%3D%20customDimensions.channelId%20%20%2C%20%0AConversationId%20%3D%20session_Id%20%2C%0AReplyActivityId%20%3D%20customDimensions.replyActivityId%20%2C%20%0AFromId%20%3D%20customDimensions.fromId%20%2C%20%0ALocale%20%3D%20customDimensions.locale%20%20%2C%0ARecipientId%20%3D%20customDimensions.recipientId%2C%20%20%0ASpeak%20%3D%20customDimensions.speak%20%2C%20%20%0AText%20%3D%20%20%20%20customDimensions.text%2C%0AEventName%20%3D%20name%2C%20%0ATime%20%3D%20timestamp%2C%20%0ADate%20%3D%20timestamp%2C%0ADialogInstanceId%20%3D%20customDimensions.InstanceId%2C%0ADialogId%20%3D%20customDimensions.DialogId%20%20%2C%20%0ADialogStepName%20%3D%20customDimensions.StepName%2C%0ALuis_ApplicationId%20%3D%20customDimensions.applicationId%2C%0ALuis_Intent%20%3D%2' (400): Bad Request. DataSourceKind = Web. DataSourcePath = https://api.loganalytics.io/v1/apps/a498620c-e2f1-4170-ab89-cb2412790836/query. Url = https://api.loganalytics.io/v1/apps/a498620c-e2f1-4170-ab89-cb2412790836/query?query=customEvents%0A%7C%20project%20%0AActivityId%20%3D%20customDimensions.activityId%2C%20%0AActivityType%20%3D%20customDimensions.activityType%2C%0AChannelId%20%3D%20customDimensions.channelId%20%20%2C%20%0AConversationId%20%3D%20session_Id%20%2C%0AReplyActivityId%20%3D%20customDimensions.replyActivityId%20%2C%20%0AFromId%20%3D%20customDimensions.fromId%20%2C%20%0ALocale%20%3D%20customDimensions.locale%20%20%2C%0ARecipientId%20%3D%20customDimensions.recipientId%2C%20%20%0ASpeak%20%3D%20customDimensions.speak%20%2C%20%20%0AText%20%3D%20%20%20%20customDimensions.text%2C%0AEventName%20%3D%20name%2C%20%0ATime%20%3D%20timestamp%2C%20%0ADate%20%3D%20timestamp%2C%0ADialogInstanceId%20%3D%20customDimensions.InstanceId%2C%0ADialogId%20%3D%20customDimensions.DialogId%20%20%2C%20%0ADialogStepName%20%3D%20customDimensions.StepName%2C%0ALuis_ApplicationId%20%3D%20customDimensions.applicationId%2C%0ALuis_Intent%20%3D%20customDimensions.int.... ;Web.Contents failed to get contents from 'https://api.loganalytics.io/v1/apps/a498620c-e2f1-4170-ab89-cb2412790836/query?query=customEvents%0A%7C%20project%20%0AActivityId%20%3D%20customDimensions.activityId%2C%20%0AActivityType%20%3D%20customDimensions.activityType%2C%0AChannelId%20%3D%20customDimensions.channelId%20%20%2C%20%0AConversationId%20%3D%20session_Id%20%2C%0AReplyActivityId%20%3D%20customDimensions.replyActivityId%20%2C%20%0AFromId%20%3D%20customDimensions.fromId%20%2C%20%0ALocale%20%3D%20customDimensions.locale%20%20%2C%0ARecipientId%20%3D%20customDimensions.recipientId%2C%20%20%0ASpeak%20%3D%20customDimensions.speak%20%2C%20%20%0AText%20%3D%20%20%20%20customDimensions.text%2C%0AEventName%20%3D%20name%2C%20%0ATime%20%3D%20timestamp%2C%20%0ADate%20%3D%20timestamp%2C%0ADialogInstanceId%20%3D%20customDimensions.InstanceId%2C%0ADialogId%20%3D%20customDimensions.DialogId%20%20%2C%20%0ADialogStepName%20%3D%20customDimensions.StepName%2C%0ALuis_ApplicationId%20%3D%20customDimensions.applicationId%2C%0ALuis_Intent%20%3D%2' (400): Bad Request. The exception was raised by the IDbCommand interface. Table: EventTelemetry. Cluster URI: WABI-NORTH-EUROPE-E-PRIMARY-redirect.analysis.windows.net Activity ID: 581d5133-34a5-4753-ba6b-5856687efe4d Request ID: 3611ca5f-38b0-3d19-3a52-10f006cd859e Time: 2021-08-10 12:10:56Z

What are the steps to reproduce this issue?

Re-deploying the template produces the same exact issue.

What were you expecting to happen?

We have been able to see the dashboard before, but now we cannot even see anything and just run into this error.

bfranco95 commented 3 years ago

Checking for any updates here?

ryanisgrig commented 3 years ago

Hi @bfranco95,

I tested this afternoon on my end with a fresh install of the Virtual Assistant, new Azure resources and a new instance of the Power BI template. This works successfully for myself. I have a few questions to follow up:

Tagging Support for backup!

tomSauret847 commented 3 years ago

I ran into tis same issue. What we found was the app insights data was to large to pull from app insights. We ended up exporting app insights data to a Blob storage and then rebuilding the report to query the data from Blob as a work around to this issue.

stevkan commented 3 years ago

@tomSauret847, can you explain how you determined that the app insights data was too large to pull?

tomSauret847 commented 3 years ago

@stevkan We opened a case with the App Insights support team and had their help in investigating this. After running a fiddler trace with the report refreshing it was uncovered that the data set was too large for the app insights API, that is what triggers the 400 error. It was larger than the 100 MB that the API allows. We have several bots using this reporting and when they become well used we change the reporting to pull from Blob storage instead of app insights. This requires exporting the data in the App insights workspace and reconfiguring the query to use the Blob storage connector.

bfranco95 commented 3 years ago

Here are the answers to your question @ryanlengel

• What version of the VA template are you using? Did the Power BI error occur after updating it or did it just stop working one day? o It just stopped working one day. No updates were made to the template. • Is telemetry still populating in the Application Insights resource as expected? o Yes • What version of Power BI desktop are you using? See: Help > About o Version: 2.96.1061.0 64-bit (August 2021)

• Are you successfully authenticated to the App Insights data source? I am authenticated using my organizational account, you can verify under Home > Transform data > Data source settings > Edit permissions > Credentials: Edit o I am using my organization account, which worked in the past.

stevkan commented 3 years ago

@bfranco95, have you investigated to see if you are running into the same issue that @tomSauret847 experienced (i.e. the response data is too large)? At the moment, this is looking to be the cause. And, it makes sense in that as data is collected but the size is low, it would work. When the size reaches the limit, it suddenly stops working.

Are you in a position where you can check / test this? Are you able to test against App Insights outside of Power BI to see if the result is the same?

stevkan commented 3 years ago

Closing as resolved. If the issue persists, please feel free to reopen.

lshade commented 2 years ago

@stevkan We should reopen this. I also have bots with multiple clients running in production that have exceeded the data limits after only a day or two. They are getting this same error. What's the recommended solution?

@tomSauret847 are you able to share the queries/scripts from your remediation?

tom600x commented 2 years ago

Please reopen @stevkan I also have a few customers who need this working without the workaround of dumping the data to SQL

lshade commented 2 years ago

Inquiring to see if someone can provide an updated version of the template configured to use blob storage instead of running the App Insights Query. We've set up a Diagnostic Setting on the LAW to archive the data in blob storage