open-nomad/website/source/docs/http/alloc.html.md
Alex Dadgar 81b78f77e1 Track task start/finish time & improve logs errors
This PR adds tracking to when a task starts and finishes and the logs
API takes advantage of this and returns better errors when asking for
logs that do not exist.
2017-03-31 16:14:11 -07:00

7.9 KiB

layout page_title sidebar_current description
http HTTP API: /v1/allocation docs-http-alloc- The '/1/allocation' endpoint is used to query a specific allocation.

/v1/allocation

The allocation endpoint is used to query a specific allocation. By default, the agent's local region is used; another region can be specified using the ?region= query parameter.

GET

Description
Query a specific allocation.
Method
GET
URL
`/v1/allocation/`
Parameters
None
Blocking Queries
[Supported](/docs/http/index.html#blocking-queries)
Returns
```javascript
{
  "ID": "203266e5-e0d6-9486-5e05-397ed2b184af",
  "EvalID": "e68125ed-3fba-fb46-46cc-291addbc4455",
  "Name": "example.cache[0]",
  "NodeID": "e02b6169-83bd-9df6-69bd-832765f333eb",
  "JobID": "example",
  "ModifyIndex": 9,
  "Resources": {
    "Networks": [
      {
        "DynamicPorts": [
          {
            "Value": 20802,
            "Label": "db"
          }
        ],
        "ReservedPorts": null,
        "MBits": 10,
        "IP": "",
        "CIDR": "",
        "Device": ""
      }
    ],
    "IOPS": 0,
    "DiskMB": 0,
    "MemoryMB": 256,
    "CPU": 500
  },
  "TaskGroup": "cache",
  "Job": {
    "ModifyIndex": 5,
    "CreateIndex": 5,
    "StatusDescription": "",
    "Status": "",
    "Meta": null,
    "Update": {
      "MaxParallel": 1,
      "Stagger": 1e+10
    },
    "TaskGroups": [
      {
        "Meta": null,
        "Tasks": [
          {
            "Meta": null,
            "Resources": {
              "Networks": [
                {
                  "DynamicPorts": [
                    {
                      "Value": 20802,
                      "Label": "db"
                    }
                  ],
                  "ReservedPorts": null,
                  "MBits": 0,
                  "IP": "127.0.0.1",
                  "CIDR": "",
                  "Device": "lo"
                }
              ],
              "IOPS": 0,
              "DiskMB": 0,
              "MemoryMB": 256,
              "CPU": 500
            },
            "Constraints": null,
            "Services": [
              {
                "Checks": [
                  {
                    "Timeout": 2e+09,
                    "Interval": 1e+10,
                    "Protocol": "",
                    "Http": "",
                    "Script": "",
                    "Type": "tcp",
                    "Name": "alive",
                    "Id": ""
                  }
                ],
                "PortLabel": "db",
                "Tags": [
                  "global",
                  "cache"
                ],
                "Name": "example-cache-redis",
                "Id": ""
              }
            ],
            "Env": null,
            "Config": {
              "port_map": [
                {
                  "db": 6379
                }
              ],
              "image": "redis:latest"
            },
            "Driver": "docker",
            "Name": "redis"
          }
        ],
        "RestartPolicy": {
          "Delay": 2.5e+10,
          "Interval": 3e+11,
          "Attempts": 10
        },
        "Constraints": null,
        "Count": 1,
        "Name": "cache"
      }
    ],
    "Region": "global",
    "ID": "example",
    "Name": "example",
    "Type": "service",
    "Priority": 50,
    "AllAtOnce": false,
    "Datacenters": [
      "dc1"
    ],
    "Constraints": [
      {
        "Operand": "=",
        "RTarget": "linux",
        "LTarget": "${attr.kernel.name}"
      }
    ]
  },
  "TaskResources": {
    "redis": {
      "Networks": [
        {
          "DynamicPorts": [
            {
              "Value": 20802,
              "Label": "db"
            }
          ],
          "ReservedPorts": null,
          "MBits": 0,
          "IP": "127.0.0.1",
          "CIDR": "",
          "Device": "lo"
        }
      ],
      "IOPS": 0,
      "DiskMB": 0,
      "MemoryMB": 256,
      "CPU": 500
    }
  },
  "Metrics": {
    "CoalescedFailures": 0,
    "AllocationTime": 1590406,
    "NodesEvaluated": 1,
    "NodesFiltered": 0,
    "ClassFiltered": null,
    "ConstraintFiltered": null,
    "NodesExhausted": 0,
    "ClassExhausted": null,
    "DimensionExhausted": null,
    "Scores": {
      "e02b6169-83bd-9df6-69bd-832765f333eb.binpack": 6.133651487695705
    }
  },
  "DesiredStatus": "run",
  "DesiredDescription": "",
  "ClientStatus": "running",
  "ClientDescription": "",
  "TaskStates": {
    "redis": {
      "Events": [
        {
          "KillError": "",
          "Message": "",
          "Signal": 0,
          "ExitCode": 0,
          "DriverError": "",
          "Time": 1447806038427841000,
          "Type": "Started"
        }
      ],
      "State": "running"
      "FinishedAt": "0001-01-01T00:00:00Z",
      "StartedAt": "2017-03-31T22:51:40.248633594Z",
      "Failed": false,
    }
  },
  "CreateIndex": 7
}
```

Field Reference

  • TaskStates - TaskStates is a map of tasks to their current state and the latest events that have effected the state.

    A task can be in the following states:

    • TaskStatePending - The task is waiting to be run, either for the first time or due to a restart.
    • TaskStateRunning - The task is currently running.
    • TaskStateDead - The task is dead and will not run again.

    Further the state contains the StartedAt and FinishedAt times of the task. StartedAt can be updated multiple times if the task restarts but FinishedAt is set only when the task transistions to TaskStateDead

    The latest 10 events are stored per task. Each event is timestamped (unix nano-seconds) and has one of the following types:

    • Setup Failure - The task could not be started because there was a failure setting up the task prior to it running.
    • Driver Failure - The task could not be started due to a failure in the driver.
    • Started - The task was started; either for the first time or due to a restart.
    • Terminated - The task was started and exited.
    • Killing - The task has been sent the kill signal.
    • Killed - The task was killed by an user.
    • Received - The task has been pulled by the client at the given timestamp.
    • Failed Validation - The task was invalid and as such it didn't run.
    • Restarting - The task terminated and is being restarted.
    • Not Restarting - the task has failed and is not being restarted because it has exceeded its restart policy.
    • Downloading Artifacts - The task is downloading the artifact(s) specified in the task.
    • Failed Artifact Download - Artifact(s) specified in the task failed to download.
    • Restart Signaled - The task was signalled to be restarted.
    • Signaling - The task was is being sent a signal.
    • Sibling Task Failed - A task in the same task group failed.
    • Leader Task Dead - The group's leader task is dead.
    • Driver - A message from the driver.
    • Task Setup - Task setup messages.

    Depending on the type the event will have applicable annotations.