2장. APIRequestCount [apiserver.openshift.io/v1]
- 설명
-
APIRequestCount는 API에 대한 요청을 추적합니다. 인스턴스 이름은 리소스와 일치하는
resource.version.group
형식이어야 합니다. 호환성 수준 1: 최소 12 개월 또는 3 개의 마이너 릴리스 (더 긴 버전) 동안 주요 릴리스 내에서 사용할 수 있습니다. - 유형
-
object
- 필수 항목
-
spec
-
2.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec은 리소스의 특성을 정의합니다. |
|
| 상태에는 리소스의 관찰된 상태가 포함됩니다. |
2.1.1. .spec
- 설명
- spec은 리소스의 특성을 정의합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| numberOfUsersToReport은 보고서에 포함할 사용자 수입니다. 지정되지 않았거나 0인 경우 기본값은 10입니다. 기본값은 변경될 수 있습니다. |
2.1.2. .status
- 설명
- 상태에는 리소스의 관찰된 상태가 포함됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 조건에는 이 API 리소스의 현재 상태에 대한 세부 정보가 포함되어 있습니다. |
|
|
condition에는 이 API 리소스의 현재 상태에 대한 세부 정보가 포함됩니다. --- 이 구조는 필드 경로 .status.conditions에서 배열로 직접 사용하기 위한 것입니다. 예를 들어 FooStatus struct{ // foo의 현재 상태의 관찰을 나타냅니다. // knownn .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchStrategy=merge // +listType=map // +listKey=type // +listKey=type [] |
|
| currentHour에는 현재 시간에 대한 요청 기록이 포함되어 있습니다. 사람이 API를 더 쉽게 읽을 수 있도록 하는 것은 문제를 해결하는지 여부를 확인하는 것입니다. 이 필드는 시간 후에 재설정됩니다. |
|
| last24h에는 마지막 24시간 동안의 요청 기록이 포함되어 있으며, 시간별로 인덱싱되는 12:00AM-12:59는 인덱스 0, 6am-6:59am은 인덱스 6입니다. 현재 시간의 인덱스가 라이브로 업데이트되고 requestsLastHour 필드에 복제됩니다. |
|
| PerResourceAPIRequestLog 로그는 다양한 노드에 대한 요청입니다. |
|
| REMOVEDINRELEASE는 API가 제거될 때입니다. |
|
| RequestCount는 현재 시간, 노드 및 사용자의 모든 requestCount의 합계입니다. |
2.1.3. .status.conditions
- 설명
- 조건에는 이 API 리소스의 현재 상태에 대한 세부 정보가 포함되어 있습니다.
- 유형
-
array
2.1.4. .status.conditions[]
- 설명
-
condition에는 이 API 리소스의 현재 상태에 대한 세부 정보가 포함됩니다. --- 이 구조는 필드 경로 .status.conditions에서 배열로 직접 사용하기 위한 것입니다. 예를 들어 FooStatus struct{ // foo의 현재 상태의 관찰을 나타냅니다. // knownn .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchStrategy=merge // +listType=map // +listKey=type // +listKey=type []
omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"
// 기타 필드 } - 유형
-
object
- 필수 항목
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
속성 | 유형 | 설명 |
---|---|---|
|
| lastTransitionTime은 마지막으로 한 상태에서 다른 상태로 전환된 시간입니다. 기본 조건이 변경된 경우여야 합니다. 이를 알 수 없는 경우 API 필드가 변경된 시간을 사용합니다. |
|
| message는 변환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. 빈 문자열일 수 있습니다. |
|
| observedGeneration은 조건에 따라 설정된 .metadata.generation을 나타냅니다. 예를 들어 .metadata.generation이 현재 12이지만 .status.conditions[x].observedGeneration이 9인 경우 현재 인스턴스 상태와 관련된 조건이 최신 상태가 아닙니다. |
|
| 이유에는 조건의 마지막 전환 이유를 나타내는 프로그래밍 식별자가 포함되어 있습니다. 특정 조건 유형의 생산자는 이 필드에 예상되는 값과 의미를 정의할 수 있으며 값이 보장된 API로 간주되는지 여부를 정의할 수 있습니다. 값은 CamelCase 문자열이어야 합니다. 이 필드는 비어 있지 않을 수 있습니다. |
|
| 조건의 상태, True, False, 알 수 없음. |
|
| CamelCase 또는 foo.example.com/CamelCase의 조건 유형. --- many .condition.type 값은 Available와 같은 리소스 간에 일관되지만 임의의 조건이 유용할 수 있으므로 (.node.status.conditions 참조), deconflict 기능이 중요합니다. 정규 표현식이 일치하는 정규 표현식은 (dns1123SubdomainFmt/)?(qualifiedNameFmt)입니다. |
2.1.5. .status.currentHour
- 설명
- currentHour에는 현재 시간에 대한 요청 기록이 포함되어 있습니다. 사람이 API를 더 쉽게 읽을 수 있도록 하는 것은 문제를 해결하는지 여부를 확인하는 것입니다. 이 필드는 시간 후에 재설정됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| byNode에는 노드당 요청 로그가 포함되어 있습니다. |
|
| PerNodeAPIRequestLog에는 특정 노드에 대한 요청 로그가 포함되어 있습니다. |
|
| RequestCount는 노드의 모든 requestCounts 합계입니다. |
2.1.6. .status.currentHour.byNode
- 설명
- byNode에는 노드당 요청 로그가 포함되어 있습니다.
- 유형
-
array
2.1.7. .status.currentHour.byNode[]
- 설명
- PerNodeAPIRequestLog에는 특정 노드에 대한 요청 로그가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| byuser에는 .spec.numberOfUsersToReport 사용자의 요청 세부 정보가 포함되어 있습니다. apiserver의 경우 상위 사용자 목록을 재시작하는 것은 최상의 방법으로 결정되므로 목록이 부정확할 수 있습니다. 또한 일부 시스템 사용자는 목록에 명시적으로 포함될 수 있습니다. |
|
| PerUserAPIRequestCount에는 사용자 요청 로그가 포함되어 있습니다. |
|
| 요청이 처리되는 노드 이름입니다. |
|
| RequestCount는 모든 사용자에 대한 모든 requestCounts의 합계이며 상위 10명의 사용자도 마찬가지입니다. |
2.1.8. .status.currentHour.byNode[].byUser
- 설명
- byuser에는 .spec.numberOfUsersToReport 사용자의 요청 세부 정보가 포함되어 있습니다. apiserver의 경우 상위 사용자 목록을 재시작하는 것은 최상의 방법으로 결정되므로 목록이 부정확할 수 있습니다. 또한 일부 시스템 사용자는 목록에 명시적으로 포함될 수 있습니다.
- 유형
-
array
2.1.9. .status.currentHour.byNode[].byUser[]
- 설명
- PerUserAPIRequestCount에는 사용자 요청 로그가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| byVerb 세부 정보 동사. |
|
| PerVerbAPIRequestCount requestCounts API 요청 동사별 요청 수입니다. |
|
| 모든 동사에 걸쳐 사용자의 요청 수입니다. |
|
| 요청을 수행한 userAgent입니다. 동일한 사용자에게 여러 개의 바이너리가 있는 경우가 많으며, 여러 컨테이너가 있는 포드를 연결합니다. 바이너리마다 다른 userAgents가 있지만 동일한 사용자가 있습니다. 또한 버전 정보가 포함된 userAgent가 있으며 userName은 변경될 가능성이 없습니다. |
|
| 요청을 한 사용자 이름입니다. |
2.1.10. .status.currentHour.byNode[].byUser[].byVerb
- 설명
- byVerb 세부 정보 동사.
- 유형
-
array
2.1.11. .status.currentHour.byNode[].byUser[].byVerb[]
- 설명
- PerVerbAPIRequestCount requestCounts API 요청 동사별 요청 수입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 동사에 대한 요청 수입니다. |
|
| API 요청 동사(get, list, create 등) |
2.1.12. .status.last24h
- 설명
- last24h에는 마지막 24시간 동안의 요청 기록이 포함되어 있으며, 시간별로 인덱싱되는 12:00AM-12:59는 인덱스 0, 6am-6:59am은 인덱스 6입니다. 현재 시간의 인덱스가 라이브로 업데이트되고 requestsLastHour 필드에 복제됩니다.
- 유형
-
array
2.1.13. .status.last24h[]
- 설명
- PerResourceAPIRequestLog 로그는 다양한 노드에 대한 요청입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| byNode에는 노드당 요청 로그가 포함되어 있습니다. |
|
| PerNodeAPIRequestLog에는 특정 노드에 대한 요청 로그가 포함되어 있습니다. |
|
| RequestCount는 노드의 모든 requestCounts 합계입니다. |
2.1.14. .status.last24h[].byNode
- 설명
- byNode에는 노드당 요청 로그가 포함되어 있습니다.
- 유형
-
array
2.1.15. .status.last24h[].byNode[]
- 설명
- PerNodeAPIRequestLog에는 특정 노드에 대한 요청 로그가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| byuser에는 .spec.numberOfUsersToReport 사용자의 요청 세부 정보가 포함되어 있습니다. apiserver의 경우 상위 사용자 목록을 재시작하는 것은 최상의 방법으로 결정되므로 목록이 부정확할 수 있습니다. 또한 일부 시스템 사용자는 목록에 명시적으로 포함될 수 있습니다. |
|
| PerUserAPIRequestCount에는 사용자 요청 로그가 포함되어 있습니다. |
|
| 요청이 처리되는 노드 이름입니다. |
|
| RequestCount는 모든 사용자에 대한 모든 requestCounts의 합계이며 상위 10명의 사용자도 마찬가지입니다. |
2.1.16. .status.last24h[].byNode[].byUser
- 설명
- byuser에는 .spec.numberOfUsersToReport 사용자의 요청 세부 정보가 포함되어 있습니다. apiserver의 경우 상위 사용자 목록을 재시작하는 것은 최상의 방법으로 결정되므로 목록이 부정확할 수 있습니다. 또한 일부 시스템 사용자는 목록에 명시적으로 포함될 수 있습니다.
- 유형
-
array
2.1.17. .status.last24h[].byNode[].byUser[]
- 설명
- PerUserAPIRequestCount에는 사용자 요청 로그가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| byVerb 세부 정보 동사. |
|
| PerVerbAPIRequestCount requestCounts API 요청 동사별 요청 수입니다. |
|
| 모든 동사에 걸쳐 사용자의 요청 수입니다. |
|
| 요청을 수행한 userAgent입니다. 동일한 사용자에게 여러 개의 바이너리가 있는 경우가 많으며, 여러 컨테이너가 있는 포드를 연결합니다. 바이너리마다 다른 userAgents가 있지만 동일한 사용자가 있습니다. 또한 버전 정보가 포함된 userAgent가 있으며 userName은 변경될 가능성이 없습니다. |
|
| 요청을 한 사용자 이름입니다. |
2.1.18. .status.last24h[].byNode[].byUser[].byVerb
- 설명
- byVerb 세부 정보 동사.
- 유형
-
array
2.1.19. .status.last24h[].byNode[].byUser[].byVerb[]
- 설명
- PerVerbAPIRequestCount requestCounts API 요청 동사별 요청 수입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 동사에 대한 요청 수입니다. |
|
| API 요청 동사(get, list, create 등) |