-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: add started
, ... to job metadata
#542
Comments
FYI: I'm willing to create a PR for this (should be pretty straightforward I guess). Unless there are objections to the idea in general |
cc @HansVRP |
sounds excellent. Is 'started' then called when running? |
After discussing this some more, it might be more useful and scalable to not add toplevel timestamps, but a "timeline" construct to keep track of various lifetime events of a batch jobs, e.g. (added comments are for illustration) "timeline": [
["created", "2017-01-01T09:32:12Z"],
["started", "2017-01-05T12:34:56Z"], # user started job 4 days after creation
["queued", "2017-01-05T12:35:01Z"], # reached status "queued" 5s later
["running", "2017-01-05T12:39:10Z"], # reached status "running" after 4 minutes
], Note that I did not define the timeline here as a mapping object, but as an array/list of tuples: it has an explicit order, and it supports repeating an event if that is necessary (e.g. restarting a job). |
This sounds like a simplified version of the logs to me, so I'm a bit sceptical. |
my proposal at #542 (comment) is a lot more primitive than logs. It's just a list of event-timestamp pairs (events could be predefined enum). It's small data, so can be easily included directly in job metadata, no need for extra endpoint like logs. But it doesn't have to be that listing, the initial question is about how to include the actual start and stop time of jobs (in addition to create time and "last status change" time) |
What's the usecase for having start and stop time? Or is it actually to the effective runtime (stop - start) that you want to get? Usually updated should be the stop time (after execution has finished), although that may differ if you make changes to the metadata of the job afterwards. |
From our end, there are multiple use cases:
One could get this info from actively polling the job status and checking status transitions, but if you want decent time resolution you would be forced to spam the back-end with status polling requests. However, the back-end probably has full, exact view on the lifecycle of a batch job anyway, so it feels like a waste to try to guess all this from the client side.
The problem with |
Just trying to understand things better right now, to get to a good solution... First use case: Does this need to be exposed publicly though? It seems that this can be done internally. Second use case: That's what |
We'd prefer to decouple the benchmarking system from the particular backends-under-test here, and use standardized metadata/reporting instead of having to invent, implement and maintain some reporting backchannel for each possible backend-under-test.
credit/cost consumption is indeed important to users, but so is time consumption.
Indeed that's the point of this feature request: not to replace credits/budget, but to add insights about the timing of the job |
What would a reasonable set of properties be?
created and updated can't be set to null, but the others must be nullable, right? So ended - started => runtime. |
job metadata at
GET /jobs/{job_id}
currently lists these timestamps:created
(required): Date and time of creationupdated
(optional): Date and time of the last status changeThis is a feature request to add
started
(optional): date and time when the job was started (POST /jobs/{job_id}/results
)stopped
(optional): date and time when job stopped running (because of reaching status finished/error/canceled)Context: we are handling some larger openEO use cases where a significant number of jobs has to be managed. We noticed that the "created" timestamp is not always a very informing aspect, while a "started" timestamp would be more relevant. For example because the jobs are created in bulk in advance, while they are started over a longer period, possibly hours or days after creation.
The text was updated successfully, but these errors were encountered: