Skip to main content
Version: 3.0 (next)

Azure Stream Analytics Nodes

MaestroHub drives Azure Stream Analytics jobs through Azure Resource Manager. Use these nodes to read how a job is doing, start, stop and scale it, check that its inputs and outputs can connect, and read its Azure Monitor metrics.

Configuration Quick Reference​

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override the timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

Node Types​

NodePurposeCommon Use Cases
Stream Analytics Get JobRead a job's state, SKU, streaming units and timingsBranching on whether a job is running, change audits of the query
Stream Analytics List JobsList the jobs in the resource groupSweeping for failed jobs, inventory
Stream Analytics Start JobStart a stopped jobRestarting after maintenance, starting once an input exists
Stream Analytics Stop JobStop a running jobBefore changing a job, stopping dev jobs out of hours
Stream Analytics Scale JobChange a running job's streaming unitsFollowing the load
Stream Analytics Test Input or OutputCheck an input or output can connectBefore a start, alerting on expired credentials
Stream Analytics Get Job MetricsRead Azure Monitor metricsWatermark-delay alerts, dashboards, scaling decisions
Data reaches a job through its inputs

Stream Analytics has no ingestion API. To feed a job from a pipeline, write to its Event Hub or IoT Hub input with those connectors' nodes; these nodes run and watch the job.

Wait for Completion needs the node's Timeout

A Start, Stop or Scale node with Wait for Completion on holds the pipeline for one to three minutes. A node with no Timeout of its own is cut off after 30 seconds, so set Timeout in the node's Settings at least as long as the function's. Azure finishes the change even when the node times out.


Stream Analytics Get Job node

Stream Analytics Get Job Node

Stream Analytics Get Job Node​

Reads one job by name, optionally with its inputs, outputs, functions and query.

Configuration: Job Name (required, templatable), Include Definition.

Output

KeyWhat it is
result.jobThe job: name, id, location, jobId, jobState, provisioningState, jobType, sku, streamingUnits, createdDate, lastOutputEventTime, outputStartMode, outputStartTime, compatibilityLevel, eventsOutOfOrderPolicy, outputErrorPolicy, tags; with Include Definition also inputs, outputs, functions and query

A Condition reads the state as $node["Stream Analytics Get Job"].result.job.jobState.


Stream Analytics List Jobs node

Stream Analytics List Jobs Node

Stream Analytics List Jobs Node​

Lists the jobs in the connection's resource group.

Configuration: State Filter (ALL, RUNNING, STOPPED, UNHEALTHY), Name Filter (templatable), Max Items.

Output

KeyWhat it is
result.jobsOne job per entry, with the same fields as Get Job without the definition. Always a list
result.countHow many jobs were returned
result.truncatedtrue when more jobs matched than Max Items allowed

Stream Analytics Start Job node

Stream Analytics Start Job Node

Stream Analytics Start Job Node​

Starts a stopped job, from the job start, a custom time, or where its last output stopped.

Configuration: Job Name (required, templatable), Output Start Mode, Output Start Time (CustomTime only, templatable), Wait for Completion.

Output

KeyWhat it is
result.jobNameThe job
result.outputStartModeThe mode the job was started with
result.outputStartTimeThe CustomTime start in UTC; "" in the other modes
result.waitedWhether the node waited for Azure to finish
result.jobStateThe job's state after the wait; "" when the node did not wait

A start whose inputs cannot all connect fails the node with Azure's reason when it waits, and leaves the job Failed.


Stream Analytics Stop Job node

Stream Analytics Stop Job Node

Stream Analytics Stop Job Node​

Stops a running job.

Configuration: Job Name (required, templatable), Wait for Completion.

Output

KeyWhat it is
result.jobNameThe job
result.waitedWhether the node waited
result.jobStateStopped after a wait; "" otherwise

Stream Analytics Scale Job node

Stream Analytics Scale Job Node

Stream Analytics Scale Job Node​

Changes a running job's streaming units. A StandardV2 job accepts 3, 7, 10 and then multiples of 10 up to 660.

Configuration: Job Name (required, templatable), Streaming Units (required, templatable), Wait for Completion.

Output

KeyWhat it is
result.jobNameThe job
result.streamingUnitsThe count asked for
result.waitedWhether the node waited
result.jobStateThe job's state after the wait; "" otherwise

Stream Analytics Test Input or Output node

Stream Analytics Test Input or Output Node

Stream Analytics Test Input or Output Node​

Asks Azure to connect one of a job's inputs or outputs. The node succeeds whether or not the test passes.

Configuration: Job Name (required, templatable), Kind (input or output), Input or Output Name (required, templatable).

Output

KeyWhat it is
result.jobNameThe job
result.kindinput or output
result.nameThe input or output tested
result.statusTestSucceeded or TestFailed
result.succeededtrue when the test passed
result.errorcode and message from Azure; both empty when the test passed

Branch on $node["Stream Analytics Test Input or Output"].result.succeeded, and put result.error.message in the alert.


Stream Analytics Get Job Metrics node

Stream Analytics Get Job Metrics Node

Stream Analytics Get Job Metrics Node​

Reads the job's Azure Monitor metrics over a lookback window.

Configuration: Job Name (required, templatable), Metrics, Lookback, Interval, Aggregation.

Output

KeyWhat it is
result.jobNameThe job
result.timespanThe window read, start/end in UTC
result.intervalThe width of each point
result.metricsOne entry per metric: name, unit, aggregation, latest ({timestamp, value} or null) and points (each {timestamp, value}, value null where nothing was recorded)

Pipeline Patterns​

Sweep for unhealthy jobs​

A Schedule trigger runs List Jobs with UNHEALTHY; a Condition on $node["Stream Analytics List Jobs"].result.count greater than zero sends the names in result.jobs to Teams.

Test, then start​

Test Input or Output for each input, a Condition on result.succeeded, then Start Job with LastOutputEventTime and Wait for Completion — with the node's Timeout raised to cover the wait.

Scale on utilization​

Get Job Metrics reads ResourceUtilization with Auto aggregation (Maximum); a Condition on result.metrics[0].latest.value above 80 runs Scale Job with the next allowed value.