The time series visualisation for queries in data explorer shows blank when I choose the multiple panels option

Cedric Mélange 20 Reputation points
2025-07-31T08:41:44.12+00:00

Following the examples in (https://learn.microsoft.com/en-us/kusto/query/anomaly-detection?view=microsoft-fabric) I'm trying to visualize a decomposition of a time series in Azure Data Explorer. However, when I choose the y-split option, the y-panels show blank

User's image

when I toggle the show multiple panels options, the query is visualised perfectly in a single panel.
User's image

What do I miss to achieve the result from the example as shown below?
Time series decomposition.

Azure Data Explorer
Azure Data Explorer
An Azure data analytics service for real-time analysis on large volumes of data streaming from sources including applications, websites, and internet of things devices.
{count} votes

Accepted answer
  1. Smaran Thoomu 28,225 Reputation points Microsoft External Staff Moderator
    2025-07-31T10:19:05.0266667+00:00

    Hi Cedric Mélange

    Thanks for sharing the screenshots - it’s clear you’ve already got the decomposition logic working, but the issue seems to be with rendering the time series into multiple panels (y-split) as shown in the official example.

    Based on what I see, the reason the multiple panels view (with ySplit=panels) renders blank is likely due to missing or mismatched series column values in your result set. Azure Data Explorer expects each decomposed component (like baseline, trend, seasonal, residual) to be represented as separate rows, each with a unique series identifier.

    What you're likely missing:

    Ensure you're using extend series = in your query to assign the correct labels:

    make-series value=avg(SensorValue) on TimeStamp from min_t to max_t step 5m by DeviceId
    | extend (baseline, seasonal, trend, residual) = series_decompose(value, -1, 'linefit')
    | project TimeStamp, baseline, seasonal, trend, residual
    | mv-expand
        baseline, seasonal, trend, residual,
        TimeStamp
    | extend value = baseline, series = "baseline"
    | union (
        project TimeStamp, value = trend, series = "trend"
    ),
    (
        project TimeStamp, value = seasonal, series = "seasonal"
    ),
    (
        project TimeStamp, value = residual, series = "residual"
    )
    | render timechart with(title="Temperature, decomposition", ysplit=panels)
    

    Or you can streamline the union into one expression using mv-expand with bag_pack and mv-expand.

    Key point:

    The charting engine requires a column named series to split each component onto its own panel. Without this, the ySplit option will not behave as expected and panels will appear blank.

    Let me know if you need help adjusting your current KQL to match this pattern.

    If this resolves your issue, please consider upvote the comment so others in the community can benefit from it as well. Happy to assist further if needed!


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.