Geo Nodes API (deprecated)
Offering: GitLab Self-Managed
Geo Nodes API는 GitLab 16.0에서 deprecated되었으며 API v5에서 제거될 예정입니다. 이 API를 사용하여 Geo 노드를 관리합니다. 지정된 Geo 노드를 업데이트합니다. Geo 노드의 OAuth 인증을 복구합니다.
Geo Nodes API는 GitLab 16.0에서 deprecated되었으며 API v5에서 제거될 예정입니다. 대신 Geo Sites API를 사용하세요. 이 변경사항은 파괴적 변경입니다.
이 API를 사용하여 Geo 노드를 관리합니다.
전제 조건:
- 관리자여야 합니다.
Geo 노드 생성#
Geo 노드를 생성합니다.
POST /geo_nodes
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://primary.example.com/api/v4/geo_nodes" \
-d "name=himynameissomething" \
-d "url=https://another-node.example.com/"
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
primary |
부울 | 아니요 | 이 노드를 primary로 지정할지 여부. 기본값: false. |
enabled |
부울 | 아니요 | Geo 노드 활성화 여부를 나타내는 플래그. 기본값: true. |
name |
문자열 | 예 | Geo 노드의 고유 식별자. gitlab.rb에 설정된 경우 geo_node_name과 일치해야 하고, 그렇지 않으면 external_url과 일치해야 합니다. |
url |
문자열 | 예 | Geo 노드의 사용자 대면 URL. |
internal_url |
문자열 | 아니요 | 보조 노드가 primary 노드에 연락하는 데 사용할 primary 노드에 정의된 URL. 설정하지 않으면 url을 반환합니다. |
files_max_capacity |
정수 | 아니요 | 이 보조 노드에 대한 LFS/첨부파일 백필의 최대 동시 실행 수를 제어합니다. 기본값: 10. |
repos_max_capacity |
정수 | 아니요 | 이 보조 노드에 대한 저장소 백필의 최대 동시 실행 수를 제어합니다. 기본값: 25. |
verification_max_capacity |
정수 | 아니요 | 이 노드에 대한 저장소 검증의 최대 동시 실행 수를 제어합니다. 기본값: 100. |
container_repositories_max_capacity |
정수 | 아니요 | 이 노드에 대한 컨테이너 저장소 동기화의 최대 동시 실행 수를 제어합니다. 기본값: 10. |
sync_object_storage |
부울 | 아니요 | 보조 Geo 노드가 Object Storage의 블롭을 복제해야 하는지 여부를 나타내는 플래그. 기본값: false. |
selective_sync_type |
문자열 | 아니요 | 특정 그룹 또는 샤드에만 동기화를 제한합니다. 유효한 값: "namespaces", "shards", null. |
selective_sync_shards |
배열 | 아니요 | selective_sync_type == shards인 경우 동기화되는 프로젝트의 저장소 스토리지. |
selective_sync_namespace_ids |
배열 | 아니요 | selective_sync_type == namespaces인 경우 동기화되어야 하는 그룹의 ID. |
minimum_reverification_interval |
정수 | 아니요 | 저장소 검증이 유효한 간격(일). 만료되면 재검증됩니다. 보조 노드에서 설정하면 효과가 없습니다. |
blob_download_timeout |
정수 | 아니요 | 블롭 복제의 타임아웃(초). 기본값: 28800. 최대값: 86400. |
응답 예시:
{
"id": 3,
"name": "Test Node 1",
"url": "https://secondary.example.com/",
"internal_url": "https://secondary.example.com/",
"primary": false,
"enabled": true,
"current": false,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"container_repositories_max_capacity": 10,
"sync_object_storage": false,
"blob_download_timeout": 28800,
"clone_protocol": "http",
"web_edit_url": "https://primary.example.com/admin/geo/sites/3/edit",
"web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/3/replication/lfs_objects",
"_links": {
"self": "https://primary.example.com/api/v4/geo_nodes/3",
"status": "https://primary.example.com/api/v4/geo_nodes/3/status",
"repair": "https://primary.example.com/api/v4/geo_nodes/3/repair"
}
}
모든 Geo 노드 나열#
모든 Geo 노드를 나열합니다.
GET /geo_nodes
curl \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://primary.example.com/api/v4/geo_nodes"
응답 예시:
[
{
"id": 1,
"name": "us-node",
"url": "https://primary.example.com/",
"internal_url": "https://internal.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"container_repositories_max_capacity": 10,
"verification_max_capacity": 100,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"blob_download_timeout": 28800,
"clone_protocol": "http",
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_nodes/1",
"status":"https://primary.example.com/api/v4/geo_nodes/1/status",
"repair":"https://primary.example.com/api/v4/geo_nodes/1/repair"
}
},
{
"id": 2,
"name": "cn-node",
"url": "https://secondary.example.com/",
"internal_url": "https://secondary.example.com/",
"primary": false,
"enabled": true,
"current": false,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"container_repositories_max_capacity": 10,
"verification_max_capacity": 100,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"sync_object_storage": true,
"blob_download_timeout": 28800,
"clone_protocol": "http",
"web_edit_url": "https://primary.example.com/admin/geo/sites/2/edit",
"web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/2/replication/lfs_objects",
"_links": {
"self":"https://primary.example.com/api/v4/geo_nodes/2",
"status":"https://primary.example.com/api/v4/geo_nodes/2/status",
"repair":"https://primary.example.com/api/v4/geo_nodes/2/repair"
}
}
]
Geo 노드 조회#
지정된 Geo 노드를 조회합니다.
curl \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://primary.example.com/api/v4/geo_nodes/1"
응답 예시:
{
"id": 1,
"name": "us-node",
"url": "https://primary.example.com/",
"internal_url": "https://primary.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"container_repositories_max_capacity": 10,
"verification_max_capacity": 100,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"clone_protocol": "http",
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_nodes/1",
"status":"https://primary.example.com/api/v4/geo_nodes/1/status",
"repair":"https://primary.example.com/api/v4/geo_nodes/1/repair"
}
}
Geo 노드 업데이트#
지정된 Geo 노드를 업데이트합니다.
PUT /geo_nodes/:id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 | 예 | Geo 노드의 ID. |
enabled |
부울 | 아니요 | Geo 노드 활성화 여부를 나타내는 플래그. |
name |
문자열 | 아니요 | Geo 노드의 고유 식별자. gitlab.rb에 설정된 경우 geo_node_name과 일치해야 하고, 그렇지 않으면 external_url과 일치해야 합니다. |
url |
문자열 | 아니요 | Geo 노드의 사용자 대면 URL. |
internal_url |
문자열 | 아니요 | 보조 노드가 primary 노드에 연락하는 데 사용할 primary 노드에 정의된 URL. 설정하지 않으면 url을 반환합니다. |
files_max_capacity |
정수 | 아니요 | 이 보조 노드에 대한 LFS/첨부파일 백필의 최대 동시 실행 수를 제어합니다. |
repos_max_capacity |
정수 | 아니요 | 이 보조 노드에 대한 저장소 백필의 최대 동시 실행 수를 제어합니다. |
verification_max_capacity |
정수 | 아니요 | 이 노드에 대한 검증의 최대 동시 실행 수를 제어합니다. |
container_repositories_max_capacity |
정수 | 아니요 | 이 노드에 대한 컨테이너 저장소 동기화의 최대 동시 실행 수를 제어합니다. |
sync_object_storage |
부울 | 아니요 | 보조 Geo 노드가 Object Storage의 블롭을 복제해야 하는지 여부를 나타내는 플래그. |
selective_sync_type |
문자열 | 아니요 | 특정 그룹 또는 샤드에만 동기화를 제한합니다. 유효한 값: "namespaces", "shards", null. |
selective_sync_shards |
배열 | 아니요 | selective_sync_type == shards인 경우 동기화되는 프로젝트의 저장소 스토리지. |
selective_sync_namespace_ids |
배열 | 아니요 | selective_sync_type == namespaces인 경우 동기화되어야 하는 그룹의 ID. |
minimum_reverification_interval |
정수 | 아니요 | 저장소 검증이 유효한 간격(일). 만료되면 재검증됩니다. 보조 노드에서 설정하면 효과가 없습니다. |
blob_download_timeout |
정수 | 아니요 | 블롭 복제의 타임아웃(초). 기본값: 28800. 최대값: 86400. |
응답 예시:
{
"id": 1,
"name": "cn-node",
"url": "https://secondary.example.com/",
"internal_url": "https://secondary.example.com/",
"primary": false,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"container_repositories_max_capacity": 10,
"verification_max_capacity": 100,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"sync_object_storage": true,
"blob_download_timeout": 28800,
"clone_protocol": "http",
"web_edit_url": "https://primary.example.com/admin/geo/sites/2/edit",
"web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/2/replication/lfs_objects",
"_links": {
"self":"https://primary.example.com/api/v4/geo_nodes/2",
"status":"https://primary.example.com/api/v4/geo_nodes/2/status",
"repair":"https://primary.example.com/api/v4/geo_nodes/2/repair"
}
}
Geo 노드 삭제#
Geo 노드를 삭제합니다.
DELETE /geo_nodes/:id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 | 예 | Geo 노드의 ID. |
Geo 노드 복구#
Geo 노드의 OAuth 인증을 복구합니다.
primary Geo 노드에서만 실행할 수 있습니다.
POST /geo_nodes/:id/repair
응답 예시:
{
"id": 1,
"name": "us-node",
"url": "https://primary.example.com/",
"internal_url": "https://primary.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"container_repositories_max_capacity": 10,
"verification_max_capacity": 100,
"clone_protocol": "http",
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_nodes/1",
"status":"https://primary.example.com/api/v4/geo_nodes/1/status",
"repair":"https://primary.example.com/api/v4/geo_nodes/1/repair"
}
}
모든 Geo 노드 상태 나열#
모든 Geo 노드 상태를 나열합니다.
GET /geo_nodes/status
curl \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://primary.example.com/api/v4/geo_nodes/status"
응답 예시:
[
{
"geo_node_id": 1,
"healthy": true,
"health": "Healthy",
"health_status": "Healthy",
"missing_oauth_application": false,
"db_replication_lag_seconds": null,
"lfs_objects_count": 5,
"lfs_objects_checksum_total_count": 5,
"lfs_objects_checksummed_count": 5,
"lfs_objects_checksum_failed_count": 0,
"lfs_objects_synced_count": null,
"lfs_objects_failed_count": null,
"lfs_objects_registry_count": null,
"lfs_objects_verification_total_count": null,
"lfs_objects_verified_count": null,
"lfs_objects_verification_failed_count": null,
"lfs_objects_synced_in_percentage": "0.00%",
"lfs_objects_verified_in_percentage": "0.00%",
"job_artifacts_count": 2,
"job_artifacts_synced_count": null,
"job_artifacts_failed_count": null,
"job_artifacts_synced_in_percentage": "0.00%",
"projects_count": 41,
"repositories_count": 41,
"replication_slots_count": 1,
"replication_slots_used_count": 1,
"replication_slots_used_in_percentage": "100.00%",
"replication_slots_max_retained_wal_bytes": 0,
"repositories_checked_count": 20,
"repositories_checked_failed_count": 20,
"repositories_checked_in_percentage": "100.00%",
"last_event_id": 23,
"last_event_timestamp": 1509681166,
"cursor_last_event_id": null,
"cursor_last_event_timestamp": 0,
"last_successful_status_check_timestamp": 1510125024,
"version": "10.3.0",
"revision": "33d33a096a",
"merge_request_diffs_count": 5,
"merge_request_diffs_checksum_total_count": 5,
"merge_request_diffs_checksummed_count": 5,
"merge_request_diffs_checksum_failed_count": 0,
"merge_request_diffs_synced_count": null,
"merge_request_diffs_failed_count": null,
"merge_request_diffs_registry_count": null,
"merge_request_diffs_verification_total_count": null,
"merge_request_diffs_verified_count": null,
"merge_request_diffs_verification_failed_count": null,
"merge_request_diffs_synced_in_percentage": "0.00%",
"merge_request_diffs_verified_in_percentage": "0.00%",
"package_files_count": 5,
"package_files_checksum_total_count": 5,
"package_files_checksummed_count": 5,
"package_files_checksum_failed_count": 0,
"package_files_synced_count": null,
"package_files_failed_count": null,
"package_files_registry_count": null,
"package_files_verification_total_count": null,
"package_files_verified_count": null,
"package_files_verification_failed_count": null,
"package_files_synced_in_percentage": "0.00%",
"package_files_verified_in_percentage": "0.00%",
"pages_deployments_count": 5,
"pages_deployments_checksum_total_count": 5,
"pages_deployments_checksummed_count": 5,
"pages_deployments_checksum_failed_count": 0,
"pages_deployments_synced_count": null,
"pages_deployments_failed_count": null,
"pages_deployments_registry_count": null,
"pages_deployments_verification_total_count": null,
"pages_deployments_verified_count": null,
"pages_deployments_verification_failed_count": null,
"pages_deployments_synced_in_percentage": "0.00%",
"pages_deployments_verified_in_percentage": "0.00%",
"terraform_state_versions_count": 5,
"terraform_state_versions_checksum_total_count": 5,
"terraform_state_versions_checksummed_count": 5,
"terraform_state_versions_checksum_failed_count": 0,
"terraform_state_versions_synced_count": null,
"terraform_state_versions_failed_count": null,
"terraform_state_versions_registry_count": null,
"terraform_state_versions_verification_total_count": null,
"terraform_state_versions_verified_count": null,
"terraform_state_versions_verification_failed_count": null,
"terraform_state_versions_synced_in_percentage": "0.00%",
"terraform_state_versions_verified_in_percentage": "0.00%",
"snippet_repositories_count": 5,
"snippet_repositories_checksum_total_count": 5,
"snippet_repositories_checksummed_count": 5,
"snippet_repositories_checksum_failed_count": 0,
"snippet_repositories_synced_count": null,
"snippet_repositories_failed_count": null,
"snippet_repositories_registry_count": null,
"snippet_repositories_verification_total_count": null,
"snippet_repositories_verified_count": null,
"snippet_repositories_verification_failed_count": null,
"snippet_repositories_synced_in_percentage": "0.00%",
"snippet_repositories_verified_in_percentage": "0.00%",
"project_wiki_repositories_count": 3,
"project_wiki_repositories_checksum_total_count": 3,
"project_wiki_repositories_checksummed_count": 3,
"project_wiki_repositories_checksum_failed_count": 0,
"project_wiki_repositories_synced_count": null,
"project_wiki_repositories_failed_count": null,
"project_wiki_repositories_registry_count": null,
"project_wiki_repositories_verification_total_count": null,
"project_wiki_repositories_verified_count": null,
"project_wiki_repositories_verification_failed_count": null,
"project_wiki_repositories_synced_in_percentage": "0.00%",
"project_wiki_repositories_verified_in_percentage": "0.00%",
"group_wiki_repositories_count": 5,
"group_wiki_repositories_checksum_total_count": 5,
"group_wiki_repositories_checksummed_count": 5,
"group_wiki_repositories_checksum_failed_count": 0,
"group_wiki_repositories_synced_count": null,
"group_wiki_repositories_failed_count": null,
"group_wiki_repositories_registry_count": null,
"group_wiki_repositories_verification_total_count": null,
"group_wiki_repositories_verified_count": null,
"group_wiki_repositories_verification_failed_count": null,
"group_wiki_repositories_synced_in_percentage": "0.00%",
"group_wiki_repositories_verified_in_percentage": "0.00%",
"pipeline_artifacts_count": 5,
"pipeline_artifacts_checksum_total_count": 5,
"pipeline_artifacts_checksummed_count": 5,
"pipeline_artifacts_checksum_failed_count": 0,
"pipeline_artifacts_synced_count": null,
"pipeline_artifacts_failed_count": null,
"pipeline_artifacts_registry_count": null,
"pipeline_artifacts_verification_total_count": null,
"pipeline_artifacts_verified_count": null,
"pipeline_artifacts_verification_failed_count": null,
"pipeline_artifacts_synced_in_percentage": "0.00%",
"pipeline_artifacts_verified_in_percentage": "0.00%",
"uploads_count": 5,
"uploads_synced_count": null,
"uploads_failed_count": 0,
"uploads_registry_count": null,
"uploads_synced_in_percentage": "0.00%",
"uploads_checksum_total_count": 5,
"uploads_checksummed_count": 5,
"uploads_checksum_failed_count": null,
"uploads_verification_total_count": null,
"uploads_verified_count": null,
"uploads_verification_failed_count": null,
"uploads_verified_in_percentage": "0.00%",
"job_artifacts_count": 5,
"job_artifacts_checksum_total_count": 5,
"job_artifacts_checksummed_count": 5,
"job_artifacts_checksum_failed_count": 0,
"job_artifacts_synced_count": 5,
"job_artifacts_failed_count": 0,
"job_artifacts_registry_count": 5,
"job_artifacts_verification_total_count": 5,
"job_artifacts_verified_count": 5,
"job_artifacts_verification_failed_count": 0,
"job_artifacts_synced_in_percentage": "100.00%",
"job_artifacts_verified_in_percentage": "100.00%",
"ci_secure_files_count": 5,
"ci_secure_files_checksum_total_count": 5,
"ci_secure_files_checksummed_count": 5,
"ci_secure_files_checksum_failed_count": 0,
"ci_secure_files_synced_count": 5,
"ci_secure_files_failed_count": 0,
"ci_secure_files_registry_count": 5,
"ci_secure_files_verification_total_count": 5,
"ci_secure_files_verified_count": 5,
"ci_secure_files_verification_failed_count": 0,
"ci_secure_files_synced_in_percentage": "100.00%",
"ci_secure_files_verified_in_percentage": "100.00%",
"dependency_proxy_blobs_count": 5,
"dependency_proxy_blobs_checksum_total_count": 5,
"dependency_proxy_blobs_checksummed_count": 5,
"dependency_proxy_blobs_checksum_failed_count": 0,
"dependency_proxy_blobs_synced_count": 5,
"dependency_proxy_blobs_failed_count": 0,
"dependency_proxy_blobs_registry_count": 5,
"dependency_proxy_blobs_verification_total_count": 5,
"dependency_proxy_blobs_verified_count": 5,
"dependency_proxy_blobs_verification_failed_count": 0,
"dependency_proxy_blobs_synced_in_percentage": "100.00%",
"dependency_proxy_blobs_verified_in_percentage": "100.00%",
"container_repositories_count": 5,
"container_repositories_synced_count": 5,
"container_repositories_failed_count": 0,
"container_repositories_registry_count": 5,
"container_repositories_synced_in_percentage": "100.00%",
"container_repositories_checksum_total_count": 0,
"container_repositories_checksummed_count": 0,
"container_repositories_checksum_failed_count": 0,
"container_repositories_verification_total_count": 0,
"container_repositories_verified_count": 0,
"container_repositories_verification_failed_count": 0,
"container_repositories_verified_in_percentage": "100.00%",
"dependency_proxy_manifests_count": 5,
"dependency_proxy_manifests_checksum_total_count": 5,
"dependency_proxy_manifests_checksummed_count": 5,
"dependency_proxy_manifests_checksum_failed_count": 5,
"dependency_proxy_manifests_synced_count": 5,
"dependency_proxy_manifests_failed_count": 0,
"dependency_proxy_manifests_registry_count": 5,
"dependency_proxy_manifests_verification_total_count": 5,
"dependency_proxy_manifests_verified_count": 5,
"dependency_proxy_manifests_verification_failed_count": 5,
"dependency_proxy_manifests_synced_in_percentage": "100.00%",
"dependency_proxy_manifests_verified_in_percentage": "100.00%",
"design_management_repositories_count": 5,
"design_management_repositories_checksum_total_count": 5,
"design_management_repositories_checksummed_count": 5,
"design_management_repositories_checksum_failed_count": 5,
"design_management_repositories_synced_count": 5,
"design_management_repositories_failed_count": 0,
"design_management_repositories_registry_count": 5,
"design_management_repositories_verification_total_count": 5,
"design_management_repositories_verified_count": 5,
"design_management_repositories_verification_failed_count": 5,
"design_management_repositories_synced_in_percentage": "100.00%",
"design_management_repositories_verified_in_percentage": "100.00%",
"project_repositories_count": 5,
"project_repositories_checksum_total_count": 5,
"project_repositories_checksummed_count": 5,
"project_repositories_checksum_failed_count": 0,
"project_repositories_synced_count": 5,
"project_repositories_failed_count": 0,
"project_repositories_registry_count": 5,
"project_repositories_verification_total_count": 5,
"project_repositories_verified_count": 5,
"project_repositories_verification_failed_count": 0,
"project_repositories_synced_in_percentage": "100.00%",
"project_repositories_verified_in_percentage": "100.00%",
"achievement_uploads_count": 0,
"achievement_uploads_checksum_total_count": 0,
"achievement_uploads_checksummed_count": 0,
"achievement_uploads_checksum_failed_count": 0,
"achievement_uploads_synced_count": null,
"achievement_uploads_failed_count": null,
"achievement_uploads_registry_count": null,
"achievement_uploads_verification_total_count": null,
"achievement_uploads_verified_count": null,
"achievement_uploads_verification_failed_count": null,
"achievement_uploads_synced_in_percentage": "0.00%",
"achievement_uploads_verified_in_percentage": "0.00%",
"bulk_import_export_upload_uploads_count": 0,
"bulk_import_export_upload_uploads_checksum_total_count": 0,
"bulk_import_export_upload_uploads_checksummed_count": 0,
"bulk_import_export_upload_uploads_checksum_failed_count": 0,
"bulk_import_export_upload_uploads_synced_count": null,
"bulk_import_export_upload_uploads_failed_count": null,
"bulk_import_export_upload_uploads_registry_count": null,
"bulk_import_export_upload_uploads_verification_total_count": null,
"bulk_import_export_upload_uploads_verified_count": null,
"bulk_import_export_upload_uploads_verification_failed_count": null,
"bulk_import_export_upload_uploads_synced_in_percentage": "0.00%",
"bulk_import_export_upload_uploads_verified_in_percentage": "0.00%",
"ai_vectorizable_file_uploads_count": 0,
"ai_vectorizable_file_uploads_checksum_total_count": 0,
"ai_vectorizable_file_uploads_checksummed_count": 0,
"ai_vectorizable_file_uploads_checksum_failed_count": 0,
"ai_vectorizable_file_uploads_synced_count": null,
"ai_vectorizable_file_uploads_failed_count": null,
"ai_vectorizable_file_uploads_registry_count": null,
"ai_vectorizable_file_uploads_verification_total_count": null,
"ai_vectorizable_file_uploads_verified_count": null,
"ai_vectorizable_file_uploads_verification_failed_count": null,
"ai_vectorizable_file_uploads_synced_in_percentage": "0.00%",
"ai_vectorizable_file_uploads_verified_in_percentage": "0.00%",
"import_export_upload_uploads_count": 0,
"import_export_upload_uploads_checksum_total_count": 0,
"import_export_upload_uploads_checksummed_count": 0,
"import_export_upload_uploads_checksum_failed_count": 0,
"import_export_upload_uploads_synced_count": null,
"import_export_upload_uploads_failed_count": null,
"import_export_upload_uploads_registry_count": null,
"import_export_upload_uploads_verification_total_count": null,
"import_export_upload_uploads_verified_count": null,
"import_export_upload_uploads_verification_failed_count": null,
"import_export_upload_uploads_synced_in_percentage": "0.00%",
"import_export_upload_uploads_verified_in_percentage": "0.00%",
"vulnerability_archive_export_uploads_count": 0,
"vulnerability_archive_export_uploads_checksum_total_count": 0,
"vulnerability_archive_export_uploads_checksummed_count": 0,
"vulnerability_archive_export_uploads_checksum_failed_count": 0,
"vulnerability_archive_export_uploads_synced_count": null,
"vulnerability_archive_export_uploads_failed_count": null,
"vulnerability_archive_export_uploads_registry_count": null,
"vulnerability_archive_export_uploads_verification_total_count": null,
"vulnerability_archive_export_uploads_verified_count": null,
"vulnerability_archive_export_uploads_verification_failed_count": null,
"vulnerability_archive_export_uploads_synced_in_percentage": "0.00%",
"vulnerability_archive_export_uploads_verified_in_percentage": "0.00%",
"project_import_export_relation_export_upload_uploads_count": 0,
"project_import_export_relation_export_upload_uploads_checksum_total_count": 0,
"project_import_export_relation_export_upload_uploads_checksummed_count": 0,
"project_import_export_relation_export_upload_uploads_checksum_failed_count": 0,
"project_import_export_relation_export_upload_uploads_synced_count": null,
"project_import_export_relation_export_upload_uploads_failed_count": null,
"project_import_export_relation_export_upload_uploads_registry_count": null,
"project_import_export_relation_export_upload_uploads_verification_total_count": null,
"project_import_export_relation_export_upload_uploads_verified_count": null,
"project_import_export_relation_export_upload_uploads_verification_failed_count": null,
"project_import_export_relation_export_upload_uploads_synced_in_percentage": "0.00%",
"project_import_export_relation_export_upload_uploads_verified_in_percentage": "0.00%",
"project_import_export_relation_export_upload_uploads_oldest_unsynced_time": null,
"vulnerability_export_uploads_count": 0,
"vulnerability_export_uploads_checksum_total_count": 0,
"vulnerability_export_uploads_checksummed_count": 0,
"vulnerability_export_uploads_checksum_failed_count": 0,
"vulnerability_export_uploads_synced_count": null,
"vulnerability_export_uploads_failed_count": null,
"vulnerability_export_uploads_registry_count": null,
"vulnerability_export_uploads_verification_total_count": null,
"vulnerability_export_uploads_verified_count": null,
"vulnerability_export_uploads_verification_failed_count": null,
"vulnerability_export_uploads_synced_in_percentage": "0.00%",
"vulnerability_export_uploads_verified_in_percentage": "0.00%",
"git_fetch_event_count_weekly": 0,
"git_push_event_count_weekly": 0,
"proxy_remote_requests_event_count_weekly": 0,
"proxy_local_requests_event_count_weekly": 0
},
{
"geo_node_id": 2,
"healthy": true,
"health": "Healthy",
"health_status": "Healthy",
"missing_oauth_application": false,
"db_replication_lag_seconds": 0,
"lfs_objects_count": 5,
"lfs_objects_checksum_total_count": 5,
"lfs_objects_checksummed_count": 5,
"lfs_objects_checksum_failed_count": 0,
"lfs_objects_synced_count": null,
"lfs_objects_failed_count": null,
"lfs_objects_registry_count": null,
"lfs_objects_verification_total_count": null,
"lfs_objects_verified_count": null,
"lfs_objects_verification_failed_count": null,
"lfs_objects_synced_in_percentage": "0.00%",
"lfs_objects_verified_in_percentage": "0.00%",
"job_artifacts_count": 2,
"job_artifacts_synced_count": 1,
"job_artifacts_failed_count": 1,
"job_artifacts_synced_in_percentage": "50.00%",
"design_management_repositories_count": 5,
"design_management_repositories_synced_count": 5,
"design_management_repositories_failed_count": 5,
"design_management_repositories_synced_in_percentage": "100.00%",
"design_management_repositories_checksum_total_count": 5,
"design_management_repositories_checksummed_count": 5,
"design_management_repositories_checksum_failed_count": 5,
"design_management_repositories_registry_count": 5,
"design_management_repositories_verification_total_count": 5,
"design_management_repositories_verified_count": 5,
"design_management_repositories_verification_failed_count": 5,
"design_management_repositories_verified_in_percentage": "100.00%",
"projects_count": 41,
"repositories_count": 41,
"replication_slots_count": null,
"replication_slots_used_count": null,
"replication_slots_used_in_percentage": "0.00%",
"replication_slots_max_retained_wal_bytes": null,
"repositories_checked_count": 5,
"repositories_checked_failed_count": 1,
"repositories_checked_in_percentage": "12.20%",
"last_event_id": 23,
"last_event_timestamp": 1509681166,
"cursor_last_event_id": 23,
"cursor_last_event_timestamp": 1509681166,
"last_successful_status_check_timestamp": 1510125024,
"version": "10.3.0",
"revision": "33d33a096a",
"merge_request_diffs_count": 5,
"merge_request_diffs_checksum_total_count": 5,
"merge_request_diffs_checksummed_count": 5,
"merge_request_diffs_checksum_failed_count": 0,
"merge_request_diffs_synced_count": 5,
"merge_request_diffs_failed_count": 0,
"merge_request_diffs_registry_count": 5,
"merge_request_diffs_verification_total_count": 5,
"merge_request_diffs_verified_count": 5,
"merge_request_diffs_verification_failed_count": 0,
"merge_request_diffs_synced_in_percentage": "100.00%",
"merge_request_diffs_verified_in_percentage": "100.00%",
"package_files_count": 5,
"package_files_checksum_total_count": 5,
"package_files_checksummed_count": 5,
"package_files_checksum_failed_count": 0,
"package_files_synced_count": 5,
"package_files_failed_count": 0,
"package_files_registry_count": 5,
"package_files_verification_total_count": 5,
"package_files_verified_count": 5,
"package_files_verification_failed_count": 0,
"package_files_synced_in_percentage": "100.00%",
"package_files_verified_in_percentage": "100.00%",
"packages_nuget_symbols_count": 5,
"packages_nuget_symbols_checksum_total_count": 5,
"packages_nuget_symbols_checksummed_count": 5,
"packages_nuget_symbols_checksum_failed_count": 0,
"packages_nuget_symbols_synced_count": 5,
"packages_nuget_symbols_failed_count": 0,
"packages_nuget_symbols_registry_count": 5,
"packages_nuget_symbols_verification_total_count": 5,
"packages_nuget_symbols_verified_count": 5,
"packages_nuget_symbols_verification_failed_count": 0,
"packages_nuget_symbols_synced_in_percentage": "100.00%",
"packages_nuget_symbols_verified_in_percentage": "100.00%",
"terraform_state_versions_count": 5,
"terraform_state_versions_checksum_total_count": 5,
"terraform_state_versions_checksummed_count": 5,
"terraform_state_versions_checksum_failed_count": 0,
"terraform_state_versions_synced_count": 5,
"terraform_state_versions_failed_count": 0,
"terraform_state_versions_registry_count": 5,
"terraform_state_versions_verification_total_count": 5,
"terraform_state_versions_verified_count": 5,
"terraform_state_versions_verification_failed_count": 0,
"terraform_state_versions_synced_in_percentage": "100.00%",
"terraform_state_versions_verified_in_percentage": "100.00%",
"snippet_repositories_count": 5,
"snippet_repositories_checksum_total_count": 5,
"snippet_repositories_checksummed_count": 5,
"snippet_repositories_checksum_failed_count": 0,
"snippet_repositories_synced_count": 5,
"snippet_repositories_failed_count": 0,
"snippet_repositories_registry_count": 5,
"snippet_repositories_verification_total_count": 5,
"snippet_repositories_verified_count": 5,
"snippet_repositories_verification_failed_count": 0,
"snippet_repositories_synced_in_percentage": "100.00%",
"snippet_repositories_verified_in_percentage": "100.00%",
"group_wiki_repositories_count": 5,
"group_wiki_repositories_checksum_total_count": 5,
"group_wiki_repositories_checksummed_count": 5,
"group_wiki_repositories_checksum_failed_count": 0,
"group_wiki_repositories_synced_count": 5,
"group_wiki_repositories_failed_count": 0,
"group_wiki_repositories_registry_count": 5,
"group_wiki_repositories_verification_total_count": 5,
"group_wiki_repositories_verified_count": 5,
"group_wiki_repositories_verification_failed_count": 0,
"group_wiki_repositories_synced_in_percentage": "100.00%",
"group_wiki_repositories_verified_in_percentage": "100.00%",
"pipeline_artifacts_count": 5,
"pipeline_artifacts_checksum_total_count": 5,
"pipeline_artifacts_checksummed_count": 5,
"pipeline_artifacts_checksum_failed_count": 0,
"pipeline_artifacts_synced_count": 5,
"pipeline_artifacts_failed_count": 0,
"pipeline_artifacts_registry_count": 5,
"pipeline_artifacts_verification_total_count": 5,
"pipeline_artifacts_verified_count": 5,
"pipeline_artifacts_verification_failed_count": 0,
"pipeline_artifacts_synced_in_percentage": "100.00%",
"pipeline_artifacts_verified_in_percentage": "100.00%",
"uploads_count": 5,
"uploads_synced_count": null,
"uploads_failed_count": 0,
"uploads_registry_count": null,
"uploads_synced_in_percentage": "0.00%",
"uploads_checksum_total_count": 5,
"uploads_checksummed_count": 5,
"uploads_checksum_failed_count": null,
"uploads_verification_total_count": null,
"uploads_verified_count": null,
"uploads_verification_failed_count": null,
"uploads_verified_in_percentage": "0.00%",
"job_artifacts_count": 5,
"job_artifacts_checksum_total_count": 5,
"job_artifacts_checksummed_count": 5,
"job_artifacts_checksum_failed_count": 0,
"job_artifacts_synced_count": 5,
"job_artifacts_failed_count": 0,
"job_artifacts_registry_count": 5,
"job_artifacts_verification_total_count": 5,
"job_artifacts_verified_count": 5,
"job_artifacts_verification_failed_count": 0,
"job_artifacts_synced_in_percentage": "100.00%",
"job_artifacts_verified_in_percentage": "100.00%",
"dependency_proxy_blobs_count": 5,
"dependency_proxy_blobs_checksum_total_count": 5,
"dependency_proxy_blobs_checksummed_count": 5,
"dependency_proxy_blobs_checksum_failed_count": 0,
"dependency_proxy_blobs_synced_count": 5,
"dependency_proxy_blobs_failed_count": 0,
"dependency_proxy_blobs_registry_count": 5,
"dependency_proxy_blobs_verification_total_count": 5,
"dependency_proxy_blobs_verified_count": 5,
"dependency_proxy_blobs_verification_failed_count": 0,
"dependency_proxy_blobs_synced_in_percentage": "100.00%",
"dependency_proxy_blobs_verified_in_percentage": "100.00%",
"container_repositories_count": 5,
"container_repositories_synced_count": 5,
"container_repositories_failed_count": 0,
"container_repositories_registry_count": 5,
"container_repositories_synced_in_percentage": "100.00%",
"container_repositories_checksum_total_count": 0,
"container_repositories_checksummed_count": 0,
"container_repositories_checksum_failed_count": 0,
"container_repositories_verification_total_count": 0,
"container_repositories_verified_count": 0,
"container_repositories_verification_failed_count": 0,
"container_repositories_verified_in_percentage": "100.00%",
"dependency_proxy_manifests_count": 5,
"dependency_proxy_manifests_checksum_total_count": 5,
"dependency_proxy_manifests_checksummed_count": 5,
"dependency_proxy_manifests_checksum_failed_count": 5,
"dependency_proxy_manifests_synced_count": 5,
"dependency_proxy_manifests_failed_count": 0,
"dependency_proxy_manifests_registry_count": 5,
"dependency_proxy_manifests_verification_total_count": 5,
"dependency_proxy_manifests_verified_count": 5,
"dependency_proxy_manifests_verification_failed_count": 5,
"dependency_proxy_manifests_synced_in_percentage": "100.00%",
"dependency_proxy_manifests_verified_in_percentage": "100.00%",
"project_repositories_count": 5,
"project_repositories_checksum_total_count": 5,
"project_repositories_checksummed_count": 5,
"project_repositories_checksum_failed_count": 0,
"project_repositories_synced_count": 5,
"project_repositories_failed_count": 0,
"project_repositories_registry_count": 5,
"project_repositories_verification_total_count": 5,
"project_repositories_verified_count": 5,
"project_repositories_verification_failed_count": 0,
"project_repositories_synced_in_percentage": "100.00%",
"project_repositories_verified_in_percentage": "100.00%",
"container_repositories_replication_enabled": null,
"abuse_report_uploads_count": 0,
"abuse_report_uploads_checksum_total_count": 0,
"abuse_report_uploads_checksummed_count": 0,
"abuse_report_uploads_checksum_failed_count": 0,
"abuse_report_uploads_synced_count": null,
"abuse_report_uploads_failed_count": null,
"abuse_report_uploads_registry_count": null,
"abuse_report_uploads_verification_total_count": null,
"abuse_report_uploads_verified_count": null,
"abuse_report_uploads_verification_failed_count": null,
"abuse_report_uploads_synced_in_percentage": "0.00%",
"abuse_report_uploads_verified_in_percentage": "0.00%",
"project_uploads_count": 0,
"project_uploads_checksum_total_count": 0,
"project_uploads_checksummed_count": 0,
"project_uploads_checksum_failed_count": 0,
"project_uploads_synced_count": null,
"project_uploads_failed_count": null,
"project_uploads_registry_count": null,
"project_uploads_verification_total_count": null,
"project_uploads_verified_count": null,
"project_uploads_verification_failed_count": null,
"project_uploads_synced_in_percentage": "0.00%",
"project_uploads_verified_in_percentage": "0.00%",
"group_uploads_count": 0,
"group_uploads_checksum_total_count": 0,
"group_uploads_checksummed_count": 0,
"group_uploads_checksum_failed_count": 0
}
]
Geo 노드 상태 조회#
지정된 Geo 노드 상태를 조회합니다.
curl \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://primary.example.com/api/v4/geo_nodes/2/status"
응답 예시:
{
"geo_node_id": 2,
"healthy": true,
"health": "Healthy",
"health_status": "Healthy",
"missing_oauth_application": false,
"db_replication_lag_seconds": 0,
"lfs_objects_count": 5,
"lfs_objects_checksum_total_count": 5,
"lfs_objects_checksummed_count": 5,
"lfs_objects_checksum_failed_count": 0,
"lfs_objects_synced_count": null,
"lfs_objects_failed_count": null,
"lfs_objects_registry_count": null,
"lfs_objects_verification_total_count": null,
"lfs_objects_verified_count": null,
"lfs_objects_verification_failed_count": null,
"lfs_objects_synced_in_percentage": "0.00%",
"lfs_objects_verified_in_percentage": "0.00%",
"job_artifacts_count": 2,
"job_artifacts_synced_count": 1,
"job_artifacts_failed_count": 1,
"job_artifacts_synced_in_percentage": "50.00%",
"projects_count": 41,
"repositories_count": 41,
"replication_slots_count": null,
"replication_slots_used_count": null,
"replication_slots_used_in_percentage": "0.00%",
"replication_slots_max_retained_wal_bytes": null,
"last_event_id": 23,
"last_event_timestamp": 1509681166,
"cursor_last_event_id": 23,
"cursor_last_event_timestamp": 1509681166,
"last_successful_status_check_timestamp": 1510125268,
"version": "10.3.0",
"revision": "33d33a096a",
"merge_request_diffs_count": 5,
"merge_request_diffs_checksum_total_count": 5,
"merge_request_diffs_checksummed_count": 5,
"merge_request_diffs_checksum_failed_count": 0,
"merge_request_diffs_synced_count": 5,
"merge_request_diffs_failed_count": 0,
"merge_request_diffs_registry_count": 5,
"merge_request_diffs_verification_total_count": 5,
"merge_request_diffs_verified_count": 5,
"merge_request_diffs_verification_failed_count": 0,
"merge_request_diffs_synced_in_percentage": "100.00%",
"merge_request_diffs_verified_in_percentage": "100.00%",
"package_files_count": 5,
"package_files_checksum_total_count": 5,
"package_files_checksummed_count": 5,
"package_files_checksum_failed_count": 0,
"package_files_synced_count": 5,
"package_files_failed_count": 0,
"package_files_registry_count": 5,
"package_files_verification_total_count": 5,
"package_files_verified_count": 5,
"package_files_verification_failed_count": 0,
"package_files_synced_in_percentage": "100.00%",
"package_files_verified_in_percentage": "100.00%",
"terraform_state_versions_count": 5,
"terraform_state_versions_checksum_total_count": 5,
"terraform_state_versions_checksummed_count": 5,
"terraform_state_versions_checksum_failed_count": 0,
"terraform_state_versions_synced_count": 5,
"terraform_state_versions_failed_count": 0,
"terraform_state_versions_registry_count": 5,
"terraform_state_versions_verification_total_count": 5,
"terraform_state_versions_verified_count": 5,
"terraform_state_versions_verification_failed_count": 0,
"terraform_state_versions_synced_in_percentage": "100.00%",
"terraform_state_versions_verified_in_percentage": "100.00%",
"snippet_repositories_count": 5,
"snippet_repositories_checksum_total_count": 5,
"snippet_repositories_checksummed_count": 5,
"snippet_repositories_checksum_failed_count": 0,
"snippet_repositories_synced_count": 5,
"snippet_repositories_failed_count": 0,
"snippet_repositories_registry_count": 5,
"snippet_repositories_verification_total_count": 5,
"snippet_repositories_verified_count": 5,
"snippet_repositories_verification_failed_count": 0,
"snippet_repositories_synced_in_percentage": "100.00%",
"snippet_repositories_verified_in_percentage": "100.00%",
"group_wiki_repositories_count": 5,
"group_wiki_repositories_checksum_total_count": 5,
"group_wiki_repositories_checksummed_count": 5,
"group_wiki_repositories_checksum_failed_count": 0,
"group_wiki_repositories_synced_count": 5,
"group_wiki_repositories_failed_count": 0,
"group_wiki_repositories_registry_count": 5,
"group_wiki_repositories_verification_total_count": 5,
"group_wiki_repositories_verified_count": 5,
"group_wiki_repositories_verification_failed_count": 0,
"group_wiki_repositories_synced_in_percentage": "100.00%",
"group_wiki_repositories_verified_in_percentage": "100.00%",
"pipeline_artifacts_count": 5,
"pipeline_artifacts_checksum_total_count": 5,
"pipeline_artifacts_checksummed_count": 5,
"pipeline_artifacts_checksum_failed_count": 0,
"pipeline_artifacts_synced_count": 5,
"pipeline_artifacts_failed_count": 0,
"pipeline_artifacts_registry_count": 5,
"pipeline_artifacts_verification_total_count": 5,
"pipeline_artifacts_verified_count": 5,
"pipeline_artifacts_verification_failed_count": 0,
"pipeline_artifacts_synced_in_percentage": "100.00%",
"pipeline_artifacts_verified_in_percentage": "100.00%",
"uploads_count": 5,
"uploads_synced_count": null,
"uploads_failed_count": 0,
"uploads_registry_count": null,
"uploads_synced_in_percentage": "0.00%",
"uploads_checksum_total_count": 5,
"uploads_checksummed_count": 5,
"uploads_checksum_failed_count": null,
"uploads_verification_total_count": null,
"uploads_verified_count": null,
"uploads_verification_failed_count": null,
"uploads_verified_in_percentage": "0.00%",
"job_artifacts_count": 5,
"job_artifacts_checksum_total_count": 5,
"job_artifacts_checksummed_count": 5,
"job_artifacts_checksum_failed_count": 0,
"job_artifacts_synced_count": 5,
"job_artifacts_failed_count": 0,
"job_artifacts_registry_count": 5,
"job_artifacts_verification_total_count": 5,
"job_artifacts_verified_count": 5,
"job_artifacts_verification_failed_count": 0,
"job_artifacts_synced_in_percentage": "100.00%",
"job_artifacts_verified_in_percentage": "100.00%",
"ci_secure_files_count": 5,
"ci_secure_files_checksum_total_count": 5,
"ci_secure_files_checksummed_count": 5,
"ci_secure_files_checksum_failed_count": 0,
"ci_secure_files_synced_count": 5,
"ci_secure_files_failed_count": 0,
"ci_secure_files_registry_count": 5,
"ci_secure_files_verification_total_count": 5,
"ci_secure_files_verified_count": 5,
"ci_secure_files_verification_failed_count": 0,
"ci_secure_files_synced_in_percentage": "100.00%",
"ci_secure_files_verified_in_percentage": "100.00%",
"dependency_proxy_blobs_count": 5,
"dependency_proxy_blobs_checksum_total_count": 5,
"dependency_proxy_blobs_checksummed_count": 5,
"dependency_proxy_blobs_checksum_failed_count": 0,
"dependency_proxy_blobs_synced_count": 5,
"dependency_proxy_blobs_failed_count": 0,
"dependency_proxy_blobs_registry_count": 5,
"dependency_proxy_blobs_verification_total_count": 5,
"dependency_proxy_blobs_verified_count": 5,
"dependency_proxy_blobs_verification_failed_count": 0,
"dependency_proxy_blobs_synced_in_percentage": "100.00%",
"dependency_proxy_blobs_verified_in_percentage": "100.00%",
"container_repositories_count": 5,
"container_repositories_synced_count": 5,
"container_repositories_failed_count": 0,
"container_repositories_registry_count": 5,
"container_repositories_synced_in_percentage": "100.00%",
"container_repositories_checksum_total_count": 0,
"container_repositories_checksummed_count": 0,
"container_repositories_checksum_failed_count": 0,
"container_repositories_verification_total_count": 0,
"container_repositories_verified_count": 0,
"container_repositories_verification_failed_count": 0,
"container_repositories_verified_in_percentage": "100.00%",
"dependency_proxy_manifests_count": 5,
"dependency_proxy_manifests_checksum_total_count": 5,
"dependency_proxy_manifests_checksummed_count": 5,
"dependency_proxy_manifests_checksum_failed_count": 5,
"dependency_proxy_manifests_synced_count": 5,
"dependency_proxy_manifests_failed_count": 0,
"dependency_proxy_manifests_registry_count": 5,
"dependency_proxy_manifests_verification_total_count": 5,
"dependency_proxy_manifests_verified_count": 5,
"dependency_proxy_manifests_verification_failed_count": 5,
"dependency_proxy_manifests_synced_in_percentage": "100.00%",
"dependency_proxy_manifests_verified_in_percentage": "100.00%",
"design_management_repositories_count": 5,
"design_management_repositories_checksum_total_count": 5,
"design_management_repositories_checksummed_count": 5,
"design_management_repositories_checksum_failed_count": 5,
"design_management_repositories_synced_count": 5,
"design_management_repositories_failed_count": 0,
"design_management_repositories_registry_count": 5,
"design_management_repositories_verification_total_count": 5,
"design_management_repositories_verified_count": 5,
"design_management_repositories_verification_failed_count": 5,
"design_management_repositories_synced_in_percentage": "100.00%",
"design_management_repositories_verified_in_percentage": "100.00%",
"project_repositories_count": 5,
"project_repositories_checksum_total_count": 5,
"project_repositories_checksummed_count": 5,
"project_repositories_checksum_failed_count": 0,
"project_repositories_synced_count": 5,
"project_repositories_failed_count": 0,
"project_repositories_registry_count": 5,
"project_repositories_verification_total_count": 5,
"project_repositories_verified_count": 5,
"project_repositories_verification_failed_count": 0,
"project_repositories_synced_in_percentage": "100.00%",
"project_repositories_verified_in_percentage": "100.00%"
}
health_status 파라미터는 "Healthy" 또는 "Unhealthy" 상태만 될 수 있으며, health 파라미터는 비어 있거나 "Healthy"이거나 실제 오류 메시지를 포함할 수 있습니다.
