[IGN-5854]Pending Records and other tags missing from Ignition Edge Store and Forward

Any reason why Ignition Edge isn’t receiving the love it deserves for Store and Forward metrics? Edge is missing pending records tags.

Ignition Store and Forward metrics page showing Local Cache pending

Tags for Ignition StoreAndForward metrics which includes Local Cache “PendingRecords” tag

Edge Store and forward metrics page showing Local Storage pending

Tags for Ignition Edge StoreAndForward metrics (only shows Memory Buffer info…where are the “PendingRecords” and other associated tags?)
image

You don’t get those other diagnostic metrics because they’re not there. Edge’s “store and forward” uses a different mechanism than standard S+F; it’s “sinking” data directly into a local SQLite file, rather than the multi-stage memory buffer → HSQL disk cache → actual DB pipeline that’s used for “standard” S+F.

Yea, I knew it is different by design…but the web page does show a status of number of records pending. It would be great to get that info as a tag or metric that is available at the central server so we can alarm and have someone look into why the queue is so high. Technically, if the gateway connection is there, then it should be pumping records…but sometimes a few sites take a VERY long time to reduce this number down despite having good network speeds or signal strength.

1 Like

Ended up creating some tags on Edge to provide the pending records. This means that the data is there...just not provided as System tags in Edge. In fact, the documentation says that if isDataStore() returns true, then you can get statistics from getDataStoreStatus()...while true, that doesn't mean you can't get at least the other integer items like getDroppedDataCount, getMaxRecords, getPendingDataCount, and getQuarantinedDataCount...which are still useful.

https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.27/com/inductiveautomation/ignition/gateway/history/DataSinkInformation.html

from com.inductiveautomation.ignition.gateway import IgnitionGateway
from java.lang import Long
	
context = IgnitionGateway.get()
si = context.historyManager.getStatusInfo("default")
pdc = 0 #pending data count
mr = 0 #max records
for dsi in si:
	dkey = dsi.getDescriptionKey() #Memory Buffer or Local Storage
	isStore = dsi.isDataStore() #in Edge, Local Storage returns False, but can still call getDataStoreStatus
	dss = dsi.getDataStoreStatus()
	pdc = dss.getPendingDataCount()
	mr = dss.getMaxRecords()
	system.tag.writeBlocking(["[default]" + dkey+ "/IsStore","[default]" + dkey + "/PendingRecords","[default]" + dkey + "/MaxRecords"],[isStore,pdc,mr])
#end for