Back to Blog

Azure Log Analytics for Power BI - The Questions Teams Actually Ask

September 10, 20267 min readMichael Ridland

Most Power BI problems in the wild are invisible. A report is slow and nobody can say why. A refresh fails intermittently and the person who owns it just retries it until it works. A dataset that ran fine for a year quietly degrades as it grows, and the first anyone hears about it is a frustrated executive who gave up waiting for a visual to load. The reason these stay invisible is that the platform, by default, does not keep the detailed evidence you would need to diagnose them. Azure Log Analytics for Power BI is how you turn the lights on, and it is one of those capabilities I wish more Australian teams knew existed before they were three months into a performance firefight.

The short version: you connect a Power BI workspace to an Azure Log Analytics workspace, and Power BI starts streaming detailed telemetry about what your semantic models are doing. Every query that runs, how long it took, whether it hit the cache, when refreshes happened and how they went. It lands in Log Analytics where you can query it with KQL and build your own monitoring on top. The Microsoft FAQ covers the mechanics, so rather than repeat those, I want to answer the questions clients actually ask us once they start thinking about it.

Is this different from the usage metrics I already have?

Yes, and the difference matters. The built-in usage metrics tell you about reports and consumption: who opened what, how often, on which device. Useful for adoption questions. Log Analytics operates a level deeper, at the engine. It tells you about the queries hitting your semantic model and the refreshes running against it. When someone opens a report, that generates a set of queries against the underlying model, and Log Analytics captures each of those with its duration and details.

So if the question is "who is using this report", usage metrics answer it. If the question is "why does this report take nine seconds to load and which query is the culprit", that is Log Analytics. They are complementary, not competing, and mature teams run both.

What can I actually see once it is connected?

The data that earns its keep is the query telemetry from the Analysis Services engine underneath your model. You get the query text, execution duration, the user context, and timing detail that lets you see where the time went. When a report is slow, this is what tells you whether it is one monster DAX measure dragging everything down, a data model that forces expensive scans, or just genuine volume.

The refresh telemetry is the other half. You can see when refreshes ran, how long they took, and enough detail to spot the ones that are creeping upward over time. That trend line is gold. A refresh that takes four minutes today and six minutes next month and eleven the month after is a problem you want to catch on the trend, not on the morning it finally blows past the timeout and fails in front of everyone.

Do I need to be a KQL expert?

Honestly, a bit of KQL helps, and this is the part teams underestimate. The data lands in Log Analytics as raw telemetry, and it does not interpret itself. You need to write Kusto queries to slice it, or build reports on top, and if nobody on the team can do that, the connection sits there collecting data nobody looks at. I have walked into engagements where Log Analytics had been dutifully capturing telemetry for months and not a single person had queried it, which is the monitoring equivalent of installing security cameras and never checking the footage.

KQL is not hard to pick up for anyone comfortable with DAX or SQL, but it is a real skill and someone has to own it. If you are setting this up, decide up front who is going to read the data and make sure they can. This is exactly the sort of capability gap our Power BI consultants close for clients, either by building the monitoring layer or by getting the internal team fluent enough to run it themselves.

What does it cost, and is it worth it?

The Power BI side of the connection does not carry a separate charge, but Log Analytics is an Azure service and you pay for data ingestion and retention there. For a busy workspace with heavily used models, the telemetry volume is not trivial, so this is a real line item, not a rounding error. You control it with retention settings and by being deliberate about which workspaces you connect.

Is it worth it? For a workspace that matters to the business, almost always. The cost of the telemetry is small next to the cost of a critical report being slow or unreliable and nobody being able to say why. Where I would not bother is a workspace full of one-off personal reports that nobody depends on. Reserve it for the models that carry real weight. Being selective about which workspaces get connected is both the cost control and the sanity control.

What is still rough about it

A few honest gripes.

The setup involves wiring together two different corners of the Microsoft cloud, Power BI and Azure, and that usually means two different teams with two different sets of permissions. The technical steps are not hard, but the organisational coordination often is. Getting the Azure admin and the Power BI admin in the same conversation is frequently the slowest part of the whole exercise, and it has nothing to do with technology.

The data is also raw. There is no polished dashboard handed to you out of the box. You get well-structured telemetry and you build your own view of it. That is the right design decision for flexibility, but it means the value is not instant. You have to invest in the monitoring layer before you get the payoff, and teams expecting a turnkey dashboard are sometimes disappointed.

And it is telemetry, not alerting, on its own. Log Analytics captures what happened. If you want to be told when a refresh fails or a query blows past a threshold, you build that alerting on top using Azure's tooling. Worth planning for, because the whole point of monitoring is catching problems before your users do, and passive data sitting in a workspace does not catch anything.

Where this fits in a healthy Power BI setup

I think about this as part of treating Power BI like the production system it actually is. Once reports become something the business genuinely depends on, running them blind is not acceptable, in the same way you would not run a production application with no logging. Log Analytics is the logging layer for your semantic models, and connecting it is a sign a team has moved from "we made some reports" to "we operate a data platform".

That shift, from ad hoc reporting to a governed, monitored, reliable platform, is most of what we help clients with on the data side. Sometimes it is a Power BI estate that grew organically and now needs proper operational discipline. Sometimes it is a broader move onto Microsoft Fabric where monitoring is part of the design from day one rather than bolted on later. Either way, knowing what your models are actually doing is not optional once people are making decisions off them.

If your Power BI environment has reached the point where slow reports and mystery refresh failures are costing you real time, and you want proper visibility into what is going on under the hood, that is exactly the kind of work we do. Take a look at our business AI and data services or get in touch and we will help you get the lights on.