How to debug DFEs/Analytic not triggering


#1

I have read that DFEs are supposed to trigger when the underlying metric changes, but I have not been able to get them to trigger that way. I will get an object, change a critical field, merge it, and use evalMetric verify that the metric looks different than it did before, but the DFE or analytic does not get triggered. When I use loadDFE and process on the CompoundDFE, everything works as intended. I think my DFEs are as simple as possible, but maybe I am missing something obvious.

Simple DFE:

@DFE(interval='DAY', period='DAY', metric='FailureEOLIndex')
type FailureEOLIndexEvent mixes TSDataFlowEvent<MobileAsset>

Compound DFE:

@DFE(interval='DAY', period='DAY')
type FailureEOLIndexInput mixes CompoundDataFlowEvent<MobileAsset> {
	failureEOLIndexEvent: FailureEOLIndexEvent
}

Analytic:

type FailureEOLIndexAnalytic mixes Analytic<FailureEOLIndexInput, Void> {
    process:  ~ js server
}

#2

It seems to be working when I create a new object, but not when I merge changes into the old object. Is there a way to enable it to trigger when changes are merged into an existing object?


#3

Obvious question, I apologize, but your metric does cover (point to) the field(s) that are/were modified on the type that you are changing on the source object?


#4

@ColumbusL
It is a metric on Transformer but it uses a field on OilTest. When I change the OilTest, the metric result changes. However, I discovered that loadDFE didn’t change and still used the old value of the metric. Also, the m_start and m_date fields of the object returned by loadDFE don’t seem to change, even if I change the start date. I am using the command

AnalyticsContainer.loadDFE("TransformerRiskInput", {id: "100100", typeName: "Transformer"}, "2015-09-18", {forceReEval: true})

EDIT: Figured out that the TenantConfig ACE start of time was set to 3 years in the past, which was limiting the start and end date of the object returned by loadDFE and preventing the changes in the date before that from being picked up. Now loadDFE matches evalMetric, but still the analytic is not firing when I change data and observe a change in the loadDFE results