Add dedicated InfluxDB 3 sensor - #73522
Merged
Merged
Conversation
Contributor
Author
|
Adding reviewers of the previous PR |
2 of 7 tasks
subhramit
force-pushed
the
influxdb3-sensor
branch
2 times, most recently
from
September 23, 2026 15:15
6ed0adb to
2cdeebf
Compare
Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: Subhramit Basu <subhramit.bb@live.in>
Signed-off-by: subhramit <subhramit.bb@live.in>
subhramit
force-pushed
the
influxdb3-sensor
branch
from
September 23, 2026 20:46
8204240 to
0a1ccaf
Compare
SameerMesiah97
left a comment
Contributor
There was a problem hiding this comment.
Looks good. There are 2 additional optional scenarios you can cover in the tests. I have left some comments.
Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: subhramit <subhramit.bb@live.in>
justinpakzad
left a comment
Contributor
There was a problem hiding this comment.
Thanks for the PR. I left a couple of comments.
Signed-off-by: subhramit <subhramit.bb@live.in>
Signed-off-by: subhramit <subhramit.bb@live.in>
justinpakzad
approved these changes
Sep 24, 2026
SameerMesiah97
left a comment
Contributor
There was a problem hiding this comment.
I have left 2 more comments for you to address before merge.
Signed-off-by: subhramit <subhramit.bb@live.in>
SameerMesiah97
approved these changes
Sep 24, 2026
aaron-y-chen
approved these changes
Sep 25, 2026
aaron-y-chen
left a comment
Contributor
There was a problem hiding this comment.
LGTM! a nit, not a blocker :)
Signed-off-by: subhramit <subhramit.bb@live.in>
shahar1
approved these changes
Sep 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement Design A from #67109 by adding a generic SQL-truthy
InfluxDB3Sensor.Now that deferrable mode is available (#71976), implementing the sensor felt like the obvious next step.
The sensor evaluates the first cell returned by an InfluxDB 3 SQL query, following
SqlSensor-style semantics. It supports synchronous polling and deferrable polling through a newInfluxDB3SensorTrigger, which reruns the query atpoke_intervalwithout occupying a worker slot between checks. Airflow owns the sensor timeout, while query errors and trigger cancellation retain their existing failure and cancellation behavior.Includes a deferrable system-test example. Tests cover timeout propagation and cancellation during both query execution and sleep.
Have locally run all prek hooks and tests and all of them pass. Following is the manual test.
MWE
Tested against
influxdb:3-corewith a file object store. Two tables inairflow_demo:homefor the client check, andarrivalsseeded with a single row that fails the sensor's predicate - so the table exists but the query comes back empty and the sensor has something real to poll.The async client on its own against the same server, to isolate it from Airflow:
Then through the sensor - deferrable, gating a downstream operator so the blocking behaviour is visible:
Triggered and left to poll -
wait_for_datasits deferred whileread_datahas no state at all:Then the matching row, written by hand:
The initial poke came back empty, so the task deferred and the trigger polled every 15s. The poke after the write caught the new row, fired
TriggerEvent<{'status': 'success'}>, and the task resumed - total duration 00:02:52, waiting on the data:Gantt view of the same run (showing the sensor's wait dominating the run and
read_datarunning only after it cleared):Both tasks finally from the CLI:

read_data's XCom shows it read the row the sensor was waiting for. Note the seededready=0row is correctly excluded:Also note: the
URI:line repeats per poke because the trigger callsget_conn()on each loop iteration (which is expected).Was generative AI tooling used to co-author this PR?
Assisted-by: Zed GPT-5.6 Sol following the guidelines
Note: All code changes done as a result (and also this description) were manually driven, edited & reviewed by me.