Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
JThomasFAS
Frequent Visitor

Check all power bi visuals on Power bi service for their status

Hello,

 

I am the only one developing power BI visuals for my company. I have lots of reports and need a way to preemptively check all report's status on a scheduled basis. Meaning I need to know if the reports have an error showing. The reason this is important is because if someone goes into an app and there is an error well then I have to drop everything I am doing to go fix it. They need the information at the time they check the app. Power bi API doesn't appear to have this functionality. Any help or suggestions would be helpful.

 

Thanks!

1 ACCEPTED SOLUTION
AdriComet
New Member

Thank you both.

 

I'm currently working on a different approach using the library Powerbi-jupyter.

 

I'm connecting to the target report, iterating over pages and visuals per page, extracting data from visuals, and catching the error messages I'd get for a crashed visual (e.g. "Error running visual data query"). 

 

After more adjustments and tests, I intend to run the notebook in the background using Jupyter Scheduler and send an alert message when an error is caught.

View solution in original post

15 REPLIES 15
AdriComet
New Member

Thank you both.

 

I'm currently working on a different approach using the library Powerbi-jupyter.

 

I'm connecting to the target report, iterating over pages and visuals per page, extracting data from visuals, and catching the error messages I'd get for a crashed visual (e.g. "Error running visual data query"). 

 

After more adjustments and tests, I intend to run the notebook in the background using Jupyter Scheduler and send an alert message when an error is caught.

This is similar to what I was trying but a little easier. Thanks for your help

Another option would be to craft a small number of DAX queries that check for basic conformity with expectations, and run these queries against the semantic model when its refresh completed successfully.

collinq
Super User
Super User

Hi @JThomasFAS ,

 

I am wondering what level of error you are looking for?  If it is an error of the report working at all (a refresh failure) then turn on the notification for refresh errors and have that sent to you.

 

If you are looking for errors that are specific to data then when I have done in the past is create a dashboard with alerts.  Basically something like "if this data wasn't updated in the last 2 days then send me an alert".  Since this is just for you, it doesn't have to be pretty and it just has to have an alert on each data bit you are tracking.

 

Do either of these work or do you mean something else about having errors?




Did I answer your question? Mark my post as a solution!

Proud to be a Datanaut!
Private message me for consulting or training needs.




Sorry not sure if I am explaining it well. I have a report that has three visuals that all read "Something's wrong with one or more of the fields". I was trying to determine if there was a way to know when a visual is giving an error. Not at the report level but at the visual level. The API appears to not have this capabililty to access visual level data or state.

Hi @lbendlin,

 

Thanks for sharing. However, If I understood @JThomasFAS correctly, this approach won't work.

I'm looking for a solution for the same problem described, to monitor and early alert on crashed visuals in our reports ("Couldn't load the data for this visual" error message style) before the user does.

 

I explored the possibility of using PBI Inspector, but this tool is focused on report layout and formatting based on a JSON file created in the Power BI Project (.pbip) extension file.

 

Since JSON is static and only contains data about how the report and visuals are created and defined, you cannot obtain errors for crashed visuals which occur at runtime, when visuals are rendered.

 

When I started exploring a solution, I expected the Power BI REST API to have some method to tackle this. For the time being, it seems Microsoft still has not worked on any solution. 

 

Googling for this, it seems we're not the only ones trying to find a workaround for this topic.

 

I'd much appreciate any ideas other developers might have.

 

Thanks.

PBI Inspector is not helpful it just gives a layout. The only way I right now that I know to do this is to web scrape the app which seems to be a grey area. The reason i need this was because i have over 1500+ measures, many data sources, and over 50 apps. I want the apps to give results when the users need them. So i want to proactively check everything.

Don't try to boil the ocean.  Spend your time on making your visuals render faster (by optimizing the participating measures and reducing the report page complexity).

I am unsure what this has to do with the problem I am trying to solve. The problem is not the rendering speed.

Most rendering errors are caused by timeouts. 

 

For all other issues you can use the likeness method I described.

You are chasing an ephemeral result. Rendering of a visual can fail due to a true issue (in which case you can do an image likeness comparison) but it can also fail because performance teeters at the brink of timeout. 

 

Remove all the unnecessary weight from your report and then add lightness. (Speed). That gives you the best chance of successful rendering.

I understand, but my point is not how to fix a crashed visual or avoid this from happening. We can handle exceptions in Power Query but something unexpected might arise nonetheless and crash our visual.

 

I want to get an alert in case such an event happens.

 

What do you mean by "image likeness comparison"?

 

Thanks.

When a visual fails to render you get a grey box and an X in a circle.  That is easy to identify in an image.  But when the visual renders with non-sensical results it becomes more difficult to detect.  You would have a rendering of a "known good"  result, and compare that to what you get. If the likeness is over 95% (for example) that could be a PASS, otherwise a FAIL.  

 

You can use simple imaging libraries like skimage's structural_similarity  function to make that comparison.

Using the likeness method seems very inefficient. Not even sure how it would work when I have multiple visuals on the same page. It's not like you can point it at one visual.  It would be easier to just web scrape for the typical error messages. At least that way i know that area has some error so i can go fix it.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors