-
Notifications
You must be signed in to change notification settings - Fork 2
REST API
DKB REST API is available (from CERN network) at: http://api.atlas-dkb.cern.ch:5080/
Common parameters (for all methods):
-
?rtype=...-- response format. Allowed values:json(default),img(only for /task/hist); -
?pretty-- pretty-print JSON.
{
"status": "OK"|"Fail",
"took_total_ms": <ms>,
"took_storage_ms": <ms>,
"data": <method response>,
"error": <error details>,
"warning": <warning or list of warnings>,
"errors": <warning or list of warnings>,
"exception": <exception name>,
"details": <exception details>
}NOTE: not all fields are presented simultaneously; e.g. if "status" is "Fail", "data" clause will be missed. And vice versa: if "status" is "OK", "error" details won't be provided (while "warning" or "errors" can be presented).
NOTE: "errors" field will eventually be renamed to "warning".
NOTE: field "exception" and its "details" appears for unhandled exceptions; some of them are OK (as "MethodNotFound" here), but if you see some native Python exception -- please open an issue.
Method name: /server_info
URL: http://api.atlas-dkb.cern.ch:5080/server_info?pretty
URL (nested demo): http://api.atlas-dkb.cern.ch:5080/nested/server_info?pretty
Parameters: none
Response format:
{
"status": "OK",
"took_total_ms": 0,
"data": {
"version": 0.3.1,
"name": "DKB API server"
}
}NOTE: currently available for all categories, but not for methods.
Method name: [/path/to/category]/info
URL: http://api.atlas-dkb.cern.ch:5080/info?pretty
URL: http://api.atlas-dkb.cern.ch:5080/task/info?pretty
URL (nested demo): http://api.atlas-dkb.cern.ch:5080/nested/task/info?pretty
Parameters: none
Response format:
{
"status": "OK",
"took_total_ms": 0,
"data": {
"path": <path/to/category>,
"methods": ["method_name1", ...]
"categories": ["subcategory1", ...]
}
}Method name: /task/kwsearch
URL (nested demo): http://api.atlas-dkb.cern.ch:5080/nested/task/kwsearch?production=true&analysis=false&kw=data16_13tev&kw=r11969&kw=32501&pretty
Parameters:
-
?kw=...&kw=...-- one or multiple keywords that must be present in the task's metadata:- NOTE: if ES wildcard symbols (
*,?) are presented in the keyword, it will be checked only against"taskname"field. - NOTE: in terms of task name, plain keywords are splitted by dots and underscores and checked against corresponding pieces of the name, while for wildcard ones underscore is not a separator, but a normal symbol. It means that
?kw=data16.r11784is equivalent to?kw=data16&kw=r11784and both of them will match tasknamedata16_13TeV.00310691.physics_Main.merge.r11969_r11784_p4072, but?kw=data16.*_r11784will only match tasks with tags part of name ending withr11784.
- NOTE: if ES wildcard symbols (
-
?analysis-- if analysis tasks should be included (default:true; to exclude:?analysis=false); -
?production-- if production tasks should be included (default:true; to exclude:?production=false); -
?size=2000-- number of tasks in response (default:2000); -
?ds_size=20-- number of datasets in response (default:20):- NOTE: ignored in case of
/nestedmethod;
- NOTE: ignored in case of
-
?timeout=120-- ES query timeout (sec) (default:120).
{
"status": "OK",
"took_total_ms": 94,
"took_storage_ms": 53,
"total": 159,
"data": [
{
"taskname": <task_name>,
...,
"output_dataset": [
{"name": <ds_name>, ...},
...
]
},
...
]}Method name: /task/chain
URL: http://api.atlas-dkb.cern.ch:5080/task/chain?tid=21774573&pretty
URL (nested demo): http://api.atlas-dkb.cern.ch:5080/nested/task/chain?tid=21774573&pretty
Parameters:
-
?tid=...-- task ID for which chain will be reconstructed.
{
"status": "OK",
"took_total_ms": 5653,
"data": {
<p_tid1>: [<child_tid1>, ...],
...
}}, where p_tidXs are IDs of tasks that belong to the chain, and child_tidYs are a given task's successors' IDs.
NOTE: took_storage_ms field is not missed here, it's not provided yet for this method.
Method name: /task/hist
URL: http://api.atlas-dkb.cern.ch:5080/task/hist?htags=mc16e_cp&pretty
URL (img): http://api.atlas-dkb.cern.ch:5080/task/hist?htags=mc16e_cp&rtype=img
URL (demo nested): http://api.atlas-dkb.cern.ch:5080/nested/task/hist?htags=returnofrpvllreprocessingdata16
Parameters:
-
?rtype=...-- response format: JSON (json) or PNG image (img); -
?start=...-- left border of time interval (supported formats:YYYY-MM-DD,YYYY-MM-DDTHH:MM:SS); -
?end=...-- right border of time interval (supported formats:YYYY-MM-DD,YYYY-MM-DDTHH:MM:SS); -
?detailed-- do not join* Mergesteps into a singleMergestep (default:false); -
?bins=...-- number of bins in histogram (default: number of data points, but not more than 400).
{
"status": "OK",
"took_total_ms": 22,
"took_storage_ms": 12,
"total": 159,
"data": {
"data": {
"x": [
[<x1_1_YYYY-MM-DD>, ...],
[<x2_1_YYYY-MM-DD>, ...],
...
],
"y": [
[<y1_1_NN>, ...],
[<y2_1_NN>, ...],
...
]
},
"legend": [<series1_name>, <series2_name>, ...]
}}Method name: /task/deriv
URL: http://api.atlas-dkb.cern.ch:5080/task/deriv?project=mc16_13TeV&amitag=r11748&pretty
URL (demo nested): http://api.atlas-dkb.cern.ch:5080/task/deriv?project=mc16_13TeV&amitag=r11748&pretty
Parameters:
-
?amitag=...&amitag=...-- tasks selection parameter: one or multiple current (last) AMI tag(s) (ctagfield value); -
?project=...-- tasks selection parameter: project name.
primary_input's data format AOD and RPVLL are selected for statistics calculation.
Response format:
{
"status": "OK",
"took_total_ms": 240,
"data": [
{
"task_ids": [<tid_1>, ...],
"output": <output data format>,
"tasks": <N tasks>,
"ratio": <output/input datasets size ratio>,
"events_ratio": <output/input datasets events number ratio>
},
...
]}NOTE: took_storage_ms field is not missed here, it's not provided yet for this method.
Method name: /campaign/stat
URL (demo nested): http://api.atlas-dkb.cern.ch:5080/nested/campaign/stat?pretty&htag=returnofrpvllreprocessingdata16&step_type=ctag_format&events_src=task
Parameters:
-
?step_type=step-- step definition type (default:step):-
stepfor MC steps, -
ctag_formatfor steps definde by task'sctagfield (current AMI tag) plus output dataset data format;
-
-
?events_src=ds-- way to calculate number of output events (default:ds):-
ds-- number of events in output dataset, -
task-- number of processed events of tasks in state:done,finished, -
all-- provide all possible values as hash (output/input events ratio in response will benull);
-
-
?<param>=<val>&<param>=...-- task selection parameters:-
<param>-- task attribute name according to mapping (project,ctag,taskid,pr_id, ...), -
<val>-- parameter value:- exact field value;
- exact field value with logical prefix:
-
&-- field must have this value (use%26or urlencode to pass this symbol) (not implemented); -
|-- field must have one of values marked with this prefix (default); -
!-- field must not have this value.
-
-
{
"status": "OK",
"took_total_ms": 182,
"took_storage_ms": 171,
"total": <number of matched documents>,
"data": {
"last_update": <last registered task timestamp>,
"date_format": <datetime format>,
"tasks_processing_summary": {
<step>: {
<status>: <N tasks>, ...,
"start": <earliest start time>,
"end": <latest end time>
},
...
},
"overall_events_processing_summary": {
<step>: {
"input": <N events>,
"output": <N events>,
"ratio": <output>/<input> /* null if 'events_src' is 'all' */
},
...
},
"tasks_updated_24h": {
<step>: {
<status>: {
"total": <N tasks>,
"updated": <N tasks>
},
...
},
...
},
"events_daily_progress": {
<step>: {
<date>: <N events processed by tasks finished at the <date> day>,
...
},
...
}}}Method name: /step/stat
URL (demo nested): http://api.atlas-dkb.cern.ch:5080/nested/step/stat?pretty&htag=returnofrpvllreprocessingdata16&step_type=ctag_format
Parameters:
-
?step_type=step-- step definition type (default:step):-
stepfor MC steps, -
ctag_formatfor steps definde by task'sctagfield (current AMI tag) plus output dataset data format;
-
-
?<param>=<val>&<param>=...-- task selection parameters:-
<param>-- task attribute name according to mapping (project,ctag,taskid,pr_id, ...), -
<val>-- parameter value:- exact field value;
- exact field value with logical prefix:
-
&-- field must have this value (use%26or urlencode to pass this symbol) (not implemented); -
|-- field must have one of values marked with this prefix (default); -
!-- field must not have this value.
-
-
{
"status": "OK",
"warning": "Formats 'DAOD', 'DRAW' are excluded from the statistics.",
"took_total_ms": 3706,
"took_storage_ms": 3592,
"total": <number of matched documents>,
"data": [
{
"name": <step name (MC step or "FORMAT:ctag")>,
"step_status": <"Unknown"|"StepDone"|"StepProgressing"|"StepNotStarted">,
"percent_done": <% of already processed events (in <input_events>); 100% only if _all_ events are processed>,
"percent_running": <% of not yet processed events for tasks in state: "running" (in <input_events>)>,
"percent_pending": <% of not processed and not running events (in <input_events>)>,
"duration": <N days>,
"total_tasks": <N tasks>,
"finished_tasks": <N tasks in state: "done", "finished">,
"total_events": <sum of total_events field>,
"processed_events": <N processed events (total_events for MC steps, processed_events for ctag_format steps)>,
"input_bytes": <size of primary input datasets>,
"input_events": <N input_events>,
"finished_bytes": <total size of primary input datasets for tasks in state: "done", "finished">,
"output_bytes": <size of output datasets>,
"hs06": <CPU usage>,
"cpu_failed": <hs06_failed>,
"input_not_removed_tasks": <N tasks, primary input of which is not yet removed (to know how precise are numbers based on DS metadata)>,
"output_not_removed_tasks": <N tasks, output dataset of which is not yet removed (to know how precise are numbers based on DS metadata)>
},
...
]}