Recon API

Recon API v1 是一组 HTTP 端点,可以帮助您了解 Ozone 集群的当前状态,并在需要时进行故障排除。

容器

GET /api/v1/containers

参数

  • prevKey (可选)

    只回传ID大于给定的 prevKey 的容器。 示例:prevKey=1

  • limit (可选)

    只回传有限数量的结果。默认限制是1000。

回传

回传所有 ContainerMetadata 对象。

  1. {
  2. "data": {
  3. "totalCount": 3,
  4. "containers": [
  5. {
  6. "ContainerID": 1,
  7. "NumberOfKeys": 834
  8. },
  9. {
  10. "ContainerID": 2,
  11. "NumberOfKeys": 833
  12. },
  13. {
  14. "ContainerID": 3,
  15. "NumberOfKeys": 833
  16. }
  17. ]
  18. }
  19. }

GET /api/v1/containers/:id/keys

参数

  • prevKey (可选)

    只回传在给定的 prevKey 键前缀之后的键。 示例:prevKey=/vol1/bucket1/key1

  • limit (可选)

    只回传有限数量的结果。默认限制是1000。

回传

回传给定容器 ID 的所有 KeyMetadata 对象。

  1. {
  2. "totalCount":7,
  3. "keys": [
  4. {
  5. "Volume":"vol-1-73141",
  6. "Bucket":"bucket-3-35816",
  7. "Key":"key-0-43637",
  8. "DataSize":1000,
  9. "Versions":[0],
  10. "Blocks": {
  11. "0": [
  12. {
  13. "containerID":1,
  14. "localID":105232659753992201
  15. }
  16. ]
  17. },
  18. "CreationTime":"2020-11-18T18:09:17.722Z",
  19. "ModificationTime":"2020-11-18T18:09:30.405Z"
  20. },
  21. ...
  22. ]
  23. }

GET /api/v1/containers/missing

参数

没有参数。

回传

回传所有丢失容器的 MissingContainerMetadata 对象。

  1. {
  2. "totalCount": 26,
  3. "containers": [{
  4. "containerID": 1,
  5. "missingSince": 1605731029145,
  6. "keys": 7,
  7. "pipelineID": "88646d32-a1aa-4e1a",
  8. "replicas": [{
  9. "containerId": 1,
  10. "datanodeHost": "localhost-1",
  11. "firstReportTimestamp": 1605724047057,
  12. "lastReportTimestamp": 1605731201301
  13. },
  14. ...
  15. ]
  16. },
  17. ...
  18. ]
  19. }

GET /api/v1/containers/:id/replicaHistory

参数

没有参数。

回传 回传给定容器 ID 的所有 ContainerHistory 对象。

  1. [
  2. {
  3. "containerId": 1,
  4. "datanodeHost": "localhost-1",
  5. "firstReportTimestamp": 1605724047057,
  6. "lastReportTimestamp": 1605730421294
  7. },
  8. ...
  9. ]

GET /api/v1/containers/unhealthy

参数

  • batchNum (可选) 回传结果的批号(如“页码”)。 传递1,将回传记录1到limit。传递2,将回传limit + 1到2 * limit,依此类推。

  • limit (可选)

    只回传有限数量的结果。默认限制是1000。

回传

回传所有不健康容器的 UnhealthyContainerMetadata 对象。

  1. {
  2. "missingCount": 2,
  3. "underReplicatedCount": 0,
  4. "overReplicatedCount": 0,
  5. "misReplicatedCount": 0,
  6. "containers": [{
  7. "containerID": 1,
  8. "containerState": "MISSING",
  9. "unhealthySince": 1605731029145,
  10. "expectedReplicaCount": 3,
  11. "actualReplicaCount": 0,
  12. "replicaDeltaCount": 3,
  13. "reason": null,
  14. "keys": 7,
  15. "pipelineID": "88646d32-a1aa-4e1a",
  16. "replicas": [{
  17. "containerId": 1,
  18. "datanodeHost": "localhost-1",
  19. "firstReportTimestamp": 1605722960125,
  20. "lastReportTimestamp": 1605731230509
  21. },
  22. ...
  23. ]
  24. },
  25. ...
  26. ]
  27. }

GET /api/v1/containers/unhealthy/:state

参数

  • batchNum (可选)

    回传结果的批号(如“页码”)。 传递1,将回传记录1到limit。传递2,将回传limit + 1到2 * limit,依此类推。

  • limit (可选)

    只回传有限数量的结果。默认限制是1000。

回传

回传处于给定状态的容器的 UnhealthyContainerMetadata 对象。 不健康的容器状态可能为MISSING, MIS_REPLICATED, UNDER_REPLICATED,OVER_REPLICATED。 响应结构与/containers/unhealthy相同。

集群状态

GET /api/v1/clusterState

参数

没有参数。

回传

返回 Ozone 集群当前状态的摘要。

  1. {
  2. "pipelines": 5,
  3. "totalDatanodes": 4,
  4. "healthyDatanodes": 4,
  5. "storageReport": {
  6. "capacity": 1081719668736,
  7. "used": 1309212672,
  8. "remaining": 597361258496
  9. },
  10. "containers": 26,
  11. "volumes": 6,
  12. "buckets": 26,
  13. "keys": 25
  14. }

数据节点

GET /api/v1/datanodes

参数

没有参数。

回传

回传集群中的所有数据节点。

  1. {
  2. "totalCount": 4,
  3. "datanodes": [{
  4. "uuid": "f8f8cb45-3ab2-4123",
  5. "hostname": "localhost-1",
  6. "state": "HEALTHY",
  7. "lastHeartbeat": 1605738400544,
  8. "storageReport": {
  9. "capacity": 270429917184,
  10. "used": 358805504,
  11. "remaining": 119648149504
  12. },
  13. "pipelines": [{
  14. "pipelineID": "b9415b20-b9bd-4225",
  15. "replicationType": "RATIS",
  16. "replicationFactor": 3,
  17. "leaderNode": "localhost-2"
  18. }, {
  19. "pipelineID": "3bf4a9e9-69cc-4d20",
  20. "replicationType": "RATIS",
  21. "replicationFactor": 1,
  22. "leaderNode": "localhost-1"
  23. }],
  24. "containers": 17,
  25. "leaderCount": 1
  26. },
  27. ...
  28. ]
  29. }

管道

GET /api/v1/pipelines

参数

没有参数

回传

回传在集群中的所有管道。

  1. {
  2. "totalCount": 5,
  3. "pipelines": [{
  4. "pipelineId": "b9415b20-b9bd-4225",
  5. "status": "OPEN",
  6. "leaderNode": "localhost-1",
  7. "datanodes": ["localhost-1", "localhost-2", "localhost-3"],
  8. "lastLeaderElection": 0,
  9. "duration": 23166128,
  10. "leaderElections": 0,
  11. "replicationType": "RATIS",
  12. "replicationFactor": 3,
  13. "containers": 0
  14. },
  15. ...
  16. ]
  17. }

任务

GET /api/v1/task/status

参数

没有参数

回传

回传所有 Recon 任务的状态。

  1. [
  2. {
  3. "taskName": "OmDeltaRequest",
  4. "lastUpdatedTimestamp": 1605724099147,
  5. "lastUpdatedSeqNumber": 186
  6. },
  7. ...
  8. ]

使用率

GET /api/v1/utilization/fileCount

参数

  • volume (可选)

    根据给定的卷名过滤结果。

  • bucket (可选)

    根据给定的桶名过滤结果。

  • fileSize (可选) 根据给定的文件大小筛选结果。

回传

回传不同文件范围内的文件计数,其中响应对象中的fileSize是文件大小范围的上限。

  1. [{
  2. "volume": "vol-2-04168",
  3. "bucket": "bucket-0-11685",
  4. "fileSize": 1024,
  5. "count": 1
  6. }, {
  7. "volume": "vol-2-04168",
  8. "bucket": "bucket-1-41795",
  9. "fileSize": 1024,
  10. "count": 1
  11. }, {
  12. "volume": "vol-2-04168",
  13. "bucket": "bucket-2-93377",
  14. "fileSize": 1024,
  15. "count": 1
  16. }, {
  17. "volume": "vol-2-04168",
  18. "bucket": "bucket-3-50336",
  19. "fileSize": 1024,
  20. "count": 2
  21. }]

指标

GET /api/v1/metrics/:api

参数

请参阅 Prometheus HTTP API 参考 以获取完整的查询文档。

回传

这是 Prometheus 的代理端点,并回传与 Prometheus 端点相同的响应。 示例:/api/v1/metrics/query?query=ratis_leader_election_electionCount

  1. {
  2. "status": "success",
  3. "data": {
  4. "resultType": "vector",
  5. "result": [
  6. {
  7. "metric": {
  8. "__name__": "ratis_leader_election_electionCount",
  9. "exported_instance": "33a5ac1d-8c65-4c74-a0b8-9314dfcccb42",
  10. "group": "group-03CA9397D54B",
  11. "instance": "ozone_datanode_1:9882",
  12. "job": "ozone"
  13. },
  14. "value": [
  15. 1599159384.455,
  16. "5"
  17. ]
  18. }
  19. ]
  20. }
  21. }