Uploading Instrument Data to BigTable

readingTimestamp

defined in Field Definitions

remarks

Publish message with all the data to topic (A)

Push subscription (B) to Cloud Run (B) that processes the data according to the calculations defined in FieldDefs in instrument type

cali1

caliN

status = ingested | loadFail | calcFail | quarantined | published

instrumentType

comments

calcN

Push subscription (A) to Cloud Run (A) that uploads data to BigTable (cf: data)

Yellow: raw readings - fields defined in instrument type's FieldDefs (or instID itself)

Orange: processed by functions - fields and functions defined in instrument type's FieldDefs

Purple: metadata about the readings for this rowkey

instrumentID

dataN

Each color has its own column familt (cf)

calc1

Publish message with calculated data to topic (B)

Push subscription (C) to Cloud Run (C) that uploads the data to BigTable (cf: calc and cali)

Push subscription (D) to Cloud Run (D) that checks for alarm breaches (look up alarm setup in instrument ID), then uploads the data to BigTable (cf: alarmBreach, metadata)

alarmsSetup info

instrumentType

breachedField

instrumentID

instrumentType

instrumentID

readingTimestamp

readingTimestamp

breachedReading

breachedLevel

breached = true | false

Cyan: row key

Dark purple: alarm breached info - alarms as defined in instrument ID's alarm setup

Cloud Run

If it only uploads data to BigTable, it'll be in green

PubSub

Comment

status = ingested | calcFail