Why don't timestamps from DF API match Storage Account timestamps #1771
-
I'm currently using the DF Api to grab orchestration information for a support UI that I have. I noticed that when using a timer, the json returned from the Api shows the timestamp for the TimerCreated to be the same as TimerFired. Obviously this is incorrect. As well, when I look at them in the Storage Account, the TimeStamp column appears to be correct. Is there a bug in the DF Api that is making it so those values are not mapped properly? The TimerCreated timestamp matches, but the TimerFired is wrong. See attached screenshots. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
This is expected behavior. For
|
Beta Was this translation helpful? Give feedback.
-
Ok. That makes sense. Thanks for the information. |
Beta Was this translation helpful? Give feedback.
-
@ConnorMcMahon Thanks for the explanation. Just to make sure we understand your response you are saying that in the rest api when we look at the data for a TimerFired event we will see the time that Timer is created in the Timestamp field. If we want to display, in a UI for instance, the time that the timer actually fired then we would have to fall back to using FireAt instead. Does this sound like a correct understanding? |
Beta Was this translation helpful? Give feedback.
-
Thanks for asking the clarifying question. In general, yes, looking at the There is the exception where your app has a large backlog of queue messages, and the TimerFired event took some extra time to be fired. The I hope that answers your question! |
Beta Was this translation helpful? Give feedback.
-
It does, thank you. To add further context - we are attempting to show in our UI the timing of the orchestration events as they actually occurred in order for users to perform analysis and triage and be able to accurately correlate those times with times that other actions outside of the orchestration occurred. From what I am hearing it sounds like in this case the only fool proof way would be to have that For now we will update to use |
Beta Was this translation helpful? Give feedback.
This is expected behavior. For
TimerFired
events, they are actually created at the time when the Timer is created, with a value ofFireAt
for when we want the queue item to be visible. When the queue message is finally visible, an orchestrator will pick it up, process the event, and write it to the history table.Timestamp
is a reserved field in Azure Tables for when a row is created. Therefore, we cannot use that field to keep track of our own internalTimestamp
value, which maps to the time that the history event was created. Therefore, we have a field called "_Timestamp" that actually maps to that value. You should find that theTimestamp
on the history events returned by the Durable F…