What language is the "Opening Condition" for the Incident Detector written in?

518
1
03-19-2019 07:24 AM
HeathAnderson
Occasional Contributor II

I have ArcGIS Geoevent 10.6.1 and was wondering if there is a way to notify the administrator of a fail in the service.  I currently poll-in an xml weather service and update a feature service every hour with the new information.  The only problem is that after a couple of weeks the update a service portion seems to fail for some unknown reason.  The current fix is that I view the feature service in AGOL and if the time stamp isn't within a couple of hour of the current time, I have to log into Geoevent and restart the Update a Feature Service.  I also restart the xml poll to make sure the feature service is being updated with the latest weather information.

I would like to create a notification email so that when the update a feature service fails to write an output I will receive an email.  I have thought about a incident detector but i am unsure of how to format the opening condition.  I was going with the approach of if "${observationdate} < now().minusHour(2)"  create a Point in Time incident then send an email.  The only problem is that this doesn't work and i am not sure what language the conditional statement is written in, SQL, Java, Python?

Does anyone have any thoughts for recommendations for my problem.  I don't really have time to check the feature service every day.

0 Kudos
1 Reply
AdamRepsher
Occasional Contributor III

Hi Heath,

I don't think that the Track Gap Detector is the item you want to be using.  It relies on an initial packet for a reference and then checks every x seconds (Gap Detection Interval) to see if any other packet has been received within the set Gap Duration.  So it uses an "internal reference" (it's own time-stamp on the first packet and then every other packet through) to check that there are no "gaps" in your stream - based on your stream's expected delivery rate.  AND there is no way to put it in between a Write to FC output and AGOL.

For example:

I consume lightning data.  I connect to that source via a connection with a "Receive Text from a TCP Socket" connector.  The feed has a "pulse" that tells us that the feed connection is still alive every 15 seconds if there is no lightning activity in our area.  This is usually the weak point in our workflow - the connection between GeoEvent and the remote server.  I have a branch of my service that just handles the Gap Detection.  It just slims the fields of any packet coming through.  The Gap Detector just gives me a True/False - gap or no-gap.  (Gap Duration = 60, Gap Detection Interval = 20)  I use a gap = "true" filter to send me a text message when the feed goes down, and a gap = "false" filter when the feed comes back up.

I would like to make a branch off the "true" filter to also send a command to a script running on the server that stops and starts the input - re-establishing the communications between the remote server and GeoEvent‌.  I am starting to study these two blogs a little more closely for an answer:

Scripting tasks using the GeoEvent Admin API

Scripting tasks using the GeoEvent Admin API - Update Inputs

You might just consider trying a server script that restarts the output every night or twice a day?  I might just try that one with my input, but my problem is that my connection sometimes drops many times a day - AND - I don't have a developer. 

I'd be very interested in hearing how you work through this.

--Adam

0 Kudos