가시성
관리자 및 개발자 메트릭, 클러스터 로깅 및 추적을 포함한 관찰 기능
초록
1장. 관리자 지표 링크 복사링크가 클립보드에 복사되었습니다!
1.1. 서버리스 관리자 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 메트릭을 사용하여 OpenShift Serverless 클러스터 구성 요소 및 워크로드를 수행하는 방법을 모니터링할 수 있습니다.
모니터링 대시보드 정보 로 이동하여 OpenShift Serverless의 다양한 메트릭을 볼 수 있습니다.
1.1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 클러스터 메트릭 활성화에 대한 정보는 메트릭 관리에 대한 OpenShift Container Platform 설명서를 참조하십시오.
- 클러스터 관리자 액세스 권한이 있는 계정(또는 AWS의 OpenShift Dedicated 또는 Red Hat OpenShift Service의 전용 관리자 액세스)에 액세스할 수 있습니다.
Service Mesh가 mTLS를 사용하여 사용하도록 설정된 경우 Service Mesh가 Prometheus의 메트릭 스크랩을 허용하지 않기 때문에 기본적으로 Knative Serviceing에 대한 메트릭이 사용되지 않도록 설정됩니다.
이 문제를 해결하는 방법에 대한 자세한 내용은 mTLS와 Service Mesh를 사용할 때 Knative Serving 메트릭 활성화를 참조하십시오.
메트릭을 스크랩하는 작업은 스크랩 요청이 활성화를 통과하지 않기 때문에 Knative 서비스의 자동 확장에 영향을 미치지 않습니다. 결과적으로 실행 중인 Pod가 없는 경우 스크랩이 수행되지 않습니다.
1.2. 서버리스 컨트롤러 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭은 컨트롤러 로직을 구현하는 구성 요소에서 출력됩니다. 이러한 메트릭은 조정 작업 및 조정 요청이 작업 대기열에 추가되는 작업 대기열 동작에 대한 세부 정보를 표시합니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 작업 대기열의 깊이 | 게이지 |
| 정수(단위 없음) |
|
| 조정 작업 수 | 카운터 |
| 정수(단위 없음) |
|
| 조정 작업 대기 시간 | 히스토그램 |
| 밀리초 |
|
| 작업 대기열에서 처리하는 총 추가 작업 수 | 카운터 |
| 정수(단위 없음) |
|
| 항목이 요청되기 전에 작업 대기열에 남아 있는 시간 | 히스토그램 |
| 초 |
|
| 작업 대기열에서 처리한 총 재시도 횟수 | 카운터 |
| 정수(단위 없음) |
|
| 작업 대기열에서 처리하는 데 걸리는 시간 및 항목 | 히스토그램 |
| 초 |
|
| 처리되지 않은 작업 대기열 항목이 진행 중인 시간 | 히스토그램 |
| 초 |
|
| 가장 긴 미결 작업 대기열 항목이 진행 중인 시간 | 히스토그램 |
| 초 |
1.3. Webhook 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
Webhook 메트릭은 작업에 대한 유용한 정보를 표시합니다. 예를 들어, 많은 작업이 실패하면 사용자가 생성한 리소스에 문제가 있음을 나타내는 것일 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| webhook로 라우팅되는 요청 수입니다. | 카운터 |
| 정수(단위 없음) |
|
| webhook 요청에 대한 응답 시간입니다. | 히스토그램 |
| 밀리초 |
1.4. Knative Eventing 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 Knative Eventing 구성 요소에 대한 다음 메트릭을 볼 수 있습니다.
HTTP 코드에서 메트릭을 집계하여 정상적인 이벤트 (2xx) 및 실패한 이벤트(5xx)의 두 가지 범주로 구분할 수 있습니다.
1.4.1. 브로커 Ingress 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 브로커 Ingress를 디버그하고, 수행 방법을 확인하고, Ingress 구성 요소에서 전달되는 이벤트를 확인할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 브로커가 수신한 이벤트 수. | 카운터 |
| 정수(단위 없음) |
|
| 이벤트를 채널로 전달하는 데 걸린 시간입니다. | 히스토그램 |
| 밀리초 |
1.4.2. 브로커 필터 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 브로커 필터를 디버그하고, 수행 방법을 확인하고, 필터에서 전달되는 이벤트를 확인할 수 있습니다. 이벤트에서 필터링 작업의 대기 시간을 측정할 수도 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 브로커가 수신한 이벤트 수. | 카운터 |
| 정수(단위 없음) |
|
| 이벤트를 채널로 전달하는 데 걸린 시간입니다. | 히스토그램 |
| 밀리초 |
|
| 트리거 구독자에게 전달되기 전에 이벤트를 처리하는 데 걸리는 시간입니다. | 히스토그램 |
| 밀리초 |
1.4.3. InMemoryChannel 디스패처 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 InMemoryChannel 채널을 디버그하고, 어떻게 수행하는지, 채널에서 디스패치 중인 이벤트를 확인할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
|
| 카운터 |
| 정수(단위 없음) |
|
|
| 히스토그램 |
| 밀리초 |
1.4.4. 이벤트 소스 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 이벤트 소스에서 연결된 이벤트 싱크로 이벤트가 전달되었는지 확인할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 이벤트 소스에서 보낸 이벤트 수입니다. | 카운터 |
| 정수(단위 없음) |
|
| 처음에 이벤트 소스가 전송되지 못한 후 이벤트 소스에 의해 전송되는 재시도 이벤트 수입니다. | 카운터 |
| 정수(단위 없음) |
1.4.5. Knative Kafka 브로커 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 Kafka 브로커의 성능을 디버그하고 시각화할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 브로커가 수신한 이벤트 수 | 카운터 |
| 무차원 |
|
| Kafka 클러스터에 이벤트를 디스패치하는 데 소요된 시간 | 히스토그램 |
| 밀리초 |
|
| 지정된 Kafka 소비자 그룹 리소스에 대해 예상되는 복제본 수 | 게이지 |
참고 이 컨텍스트에서 리소스는 Kafka 소스, 트리거 및 서브스크립션과 같은 사용자 대면 엔터티를 나타냅니다. 이러한 리소스를 사용할 때 내부 또는 생성된 이름을 사용하지 마십시오. | 무차원 |
|
| 지정된 Kafka 소비자 그룹 리소스에 대해 준비된 복제본 수 | 게이지 |
참고 이 컨텍스트에서 리소스는 Kafka 소스, 트리거 및 서브스크립션과 같은 사용자 대면 엔터티를 나타냅니다. 이러한 리소스를 사용할 때 내부 또는 생성된 이름을 사용하지 마십시오. | 무차원 |
1.4.6. Knative Kafka 트리거 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 Kafka 트리거의 성능을 디버그하고 시각화할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 트리거에서 구독자로 디스패치한 이벤트 수 | 카운터 |
| 무차원 |
|
| 구독자에게 이벤트를 전달하는 데 소요된 시간 | 히스토그램 |
| 밀리초 |
|
| 이벤트 처리 및 필터링에 소요된 시간 | 히스토그램 |
| 밀리초 |
1.4.7. Knative Kafka 채널 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 Kafka 채널의 성능을 디버그하고 시각화할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| Kafka 채널에서 수신한 이벤트 수 | 카운터 |
| 무차원 |
|
| Kafka 클러스터에 이벤트를 디스패치하는 데 소요된 시간 | 히스토그램 |
| 밀리초 |
1.4.8. Knative Kafka 서브스크립션 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 Kafka 채널과 연결된 서브스크립션의 성능을 디버그하고 시각화할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 구독자에게 서브스크립션으로 디스패치된 이벤트 수 | 카운터 |
| 무차원 |
|
| 구독자에게 이벤트를 전달하는 데 소요된 시간 | 히스토그램 |
| 밀리초 |
|
| 이벤트 처리 시간 | 히스토그램 |
| 무차원 |
1.4.9. Knative Kafka 소스 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 Kafka 소스의 성능을 디버그하고 시각화할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| Kafka 소스에서 디스패치한 이벤트 수 | 카운터 |
| 무차원 |
|
| 이벤트를 싱크로 디스패치하는 데 소요된 시간 | 히스토그램 |
| 밀리초 |
|
| 이벤트 처리 시간 | 히스토그램 |
| 밀리초 |
|
| 지정된 Kafka 소비자 그룹 리소스에 대해 예상되는 복제본 수 | 게이지 |
참고 이 컨텍스트에서 리소스는 Kafka 소스, 트리거 및 서브스크립션과 같은 사용자 대면 엔터티를 나타냅니다. 이러한 리소스를 사용할 때 내부 또는 생성된 이름을 사용하지 마십시오. | 무차원 |
|
| 지정된 Kafka 소비자 그룹 리소스에 대해 준비된 복제본 수 | 게이지 |
참고 이 컨텍스트에서 리소스는 Kafka 소스, 트리거 및 서브스크립션과 같은 사용자 대면 엔터티를 나타냅니다. 이러한 리소스를 사용할 때 내부 또는 생성된 이름을 사용하지 마십시오. | 무차원 |
1.4.10. Knative Kafka 싱크 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 Kafka 싱크의 성능을 디버그하고 시각화할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 브로커가 수신한 이벤트 수 | 카운터 |
| 무차원 |
|
| Kafka 클러스터에 이벤트를 디스패치하는 데 소요된 시간 | 히스토그램 |
| 밀리초 |
1.5. Knative Serving 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 Knative Serving 구성 요소에 대한 다음 메트릭을 볼 수 있습니다.
1.5.1. 활성화기 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
다음 메트릭을 사용하여 트래픽이 활성화기를 통해 전달될 때 애플리케이션이 응답하는 방식을 파악할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 활성화기 또는 보고 기간에 평균 동시성으로 라우팅되는 동시 요청 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 활성화기로 라우팅되는 요청 수입니다. 이러한 요청은 활성화기 처리기에서 실행된 요청입니다. | 카운터 |
| 정수(단위 없음) |
|
| 실행된 라우팅된 요청에 대한 응답 시간(밀리초)입니다. | 히스토그램 |
| 밀리초 |
1.5.2. 자동 스케일러 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
자동 스케일러 구성 요소는 각 버전의 자동 스케일러 동작과 관련된 여러 메트릭을 표시합니다. 예를 들어, 자동 스케일러가 서비스에 할당하려는 대상 Pod 수, 안정적인 기간 동안 초당 평균 요청 수 또는 Knative Pod 자동 스케일러(KPA)를 사용하는 경우 자동 스케일러가 패닉 모드인지를 모니터링할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
| 자동 스케일러가 서비스에 할당하려는 Pod 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| stable 창에서 제공되는 추가 버스트 용량입니다. | 게이지 |
| 정수(단위 없음) |
|
| stable 창에서 모니터링되는 각 pod의 평균 요청 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| panic 창에서 모니터링되는 각 Pod의 평균 요청 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 자동 스케일러가 각 pod에 보내려는 동시 요청 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| stable 창에서 모니터링되는 각 pod의 평균 요청 수(초당)입니다. | 게이지 |
| 정수(단위 없음) |
|
| panic 창에서 모니터링되는 각 Pod의 평균 요청 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 각 pod에 대해 자동 스케일러가 대상으로 하는 초당 요청 수입니다. | 게이지 |
| 정수(단위 없음) |
|
|
자동 스케일러가 패닉 모드이면 이 값은 | 게이지 |
| 정수(단위 없음) |
|
| Kubernetes 클러스터에서 자동 스케일러가 요청한 Pod 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 할당되어 있고 현재 준비 상태인 Pod 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 준비되지 않은 상태의 Pod 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 현재 보류 중인 pod 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 현재 종료 중인 Pod 수입니다. | 게이지 |
| 정수(단위 없음) |
1.5.3. Go 런타임 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
각 Knative Serving 컨트롤 플레인 프로세스는 수많은 Go 런타임 메모리 통계(MemStats)를 출력합니다.
각 메트릭의 name 태그는 빈 태그입니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
|
할당된 힙 오브젝트의 바이트 수입니다. 이 메트릭은 | 게이지 |
| 정수(단위 없음) |
|
| 힙 오브젝트에 할당된 누적 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 운영 체제에서 얻은 총 메모리 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 런타임에서 수행하는 포인터 검색 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 할당된 힙 오브젝트의 누적 개수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 해제된 힙 오브젝트의 누적 개수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 할당된 힙 오브젝트의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 운영 체제에서 얻은 힙 메모리의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 유휴 상태의 사용되지 않는 범위의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 현재 사용 중인 범위의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 운영 체제로 반환되는 실제 메모리의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 할당된 힙 오브젝트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 현재 사용 중인 스택 범위의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 운영 체제에서 얻은 스택 메모리의 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
|
할당된 | 게이지 |
| 정수(단위 없음) |
|
|
| 게이지 |
| 정수(단위 없음) |
|
|
할당된 | 게이지 |
| 정수(단위 없음) |
|
|
| 게이지 |
| 정수(단위 없음) |
|
| 버킷 해시 테이블 프로파일에서의 메모리 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 가비지 컬렉션 메타데이터의 메모리 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 기타, 오프-힙 런타임 할당의 메모리 바이트 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 다음 가비지 컬렉션 사이클의 대상 힙 크기입니다. | 게이지 |
| 정수(단위 없음) |
|
| 마지막 가비지 컬렉션이Epoch 또는 Unix 시간으로 완료된 시간입니다. | 게이지 |
| 나노초 |
|
| 프로그램이 시작된 이후 가비지 컬렉션 stop-the-world 일시 중지의 누적 시간입니다 | 게이지 |
| 나노초 |
|
| 완료된 가비지 컬렉션 사이클 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 가비지 컬렉션 기능을 호출하는 애플리케이션으로 인해 강제된 가비지 컬렉션 사이클의 수입니다. | 게이지 |
| 정수(단위 없음) |
|
| 프로그램이 시작된 이후 가비지 컬렉터에서 사용한 프로그램의 사용 가능한 일부 CPU 시간입니다. | 게이지 |
| 정수(단위 없음) |
2장. 개발자 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
2.1. 서버리스 개발자 메트릭 개요 링크 복사링크가 클립보드에 복사되었습니다!
지표를 사용하면 개발자가 Knative 서비스 성능을 모니터링할 수 있습니다. OpenShift Container Platform 모니터링 스택을 사용하여 Knative 서비스에 대한 상태 점검 및 메트릭을 기록하고 확인할 수 있습니다.
모니터링 대시보드정보로 이동하여 OpenShift Serverless의 다양한 메트릭을 볼 수 있습니다.
Service Mesh가 mTLS를 사용하여 사용하도록 설정된 경우 Service Mesh가 Prometheus의 메트릭 스크랩을 허용하지 않기 때문에 기본적으로 Knative Serviceing에 대한 메트릭이 사용되지 않도록 설정됩니다.
이 문제를 해결하는 방법에 대한 자세한 내용은 mTLS와 Service Mesh를 사용할 때 Knative Serving 메트릭 활성화를 참조하십시오.
메트릭을 스크랩하는 작업은 스크랩 요청이 활성화를 통과하지 않기 때문에 Knative 서비스의 자동 확장에 영향을 미치지 않습니다. 결과적으로 실행 중인 Pod가 없는 경우 스크랩이 수행되지 않습니다.
2.2. 기본적으로 노출되는 Knative 서비스 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
| 메트릭 이름, 단위 및 유형 | 설명 | 메트릭 태그 |
|---|---|---|
|
메트릭 단위: 무차원 단위 메트릭 유형: 카운터 |
| configuration_name="event-display", container_name="queue-proxy", namespace_name="apiserversource1", pod_name="event-display-00001-deployment-658fd4f9cf-qcnr5", response_code="200", response_code_class="2xx", revision_name="event-display-00001", service_name="event-display" |
|
메트릭 단위: 밀리초 메트릭 유형: 히스토그램 | 응답 시간(밀리초)입니다. | configuration_name="event-display", container_name="queue-proxy", namespace_name="apiserversource1", pod_name="event-display-00001-deployment-658fd4f9cf-qcnr5", response_code="200", response_code_class="2xx", revision_name="event-display-00001", service_name="event-display" |
|
메트릭 단위: 무차원 단위 메트릭 유형: 카운터 |
| configuration_name="event-display", container_name="queue-proxy", namespace_name="apiserversource1", pod_name="event-display-00001-deployment-658fd4f9cf-qcnr5", response_code="200", response_code_class="2xx", revision_name="event-display-00001", service_name="event-display" |
|
메트릭 단위: 밀리초 메트릭 유형: 히스토그램 | 응답 시간(밀리초)입니다. | configuration_name="event-display", container_name="queue-proxy", namespace_name="apiserversource1", pod_name="event-display-00001-deployment-658fd4f9cf-qcnr5", response_code="200", response_code_class="2xx", revision_name="event-display-00001", service_name="event-display" |
|
메트릭 단위: 무차원 단위 메트릭 유형: 게이지 |
서비스 및 대기열에 있는 현재 항목 수 또는 무제한 동시 실행인 경우 보고되지 않은 항목 수입니다. | configuration_name="event-display", container_name="queue-proxy", namespace_name="apiserversource1", pod_name="event-display-00001-deployment-658fd4f9cf-qcnr5", response_code="200", response_code_class="2xx", revision_name="event-display-00001", service_name="event-display" |
2.3. 사용자 정의 애플리케이션 메트릭이 있는 Knative 서비스 링크 복사링크가 클립보드에 복사되었습니다!
Knative 서비스에서 내보낸 메트릭 집합을 확장할 수 있습니다. 정확한 구현은 애플리케이션 및 사용된 언어에 따라 다릅니다.
다음 목록에서는 처리된 이벤트 사용자 지정 메트릭을 내보내는 샘플 Go 애플리케이션을 구현합니다.
2.4. 사용자 정의 메트릭 스크랩 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 메트릭 스크랩은 사용자 워크로드 모니터링을 위해 Prometheus의 인스턴스에서 수행합니다. 사용자 워크로드 모니터링을 활성화하고 애플리케이션을 생성한 후에는 모니터링 스택에서 메트릭을 스크랩하는 방법을 정의하는 구성이 필요합니다.
다음 샘플 구성은 애플리케이션에 대한 ksvc를 정의하고 서비스 모니터를 구성합니다. 정확한 구성은 애플리케이션과 메트릭을 내보내는 방법에 따라 다릅니다.
2.5. 서비스의 메트릭 검사 링크 복사링크가 클립보드에 복사되었습니다!
메트릭을 내보내도록 애플리케이션을 구성하고 모니터링 스택을 스크랩하면 웹 콘솔에서 메트릭을 검사할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 로그인했습니다.
- OpenShift Serverless Operator 및 Knative Serving이 설치되어 있습니다.
프로세스
선택 사항: 메트릭에서 볼 수 있는 애플리케이션에 대한 요청을 실행합니다.
hello_route=$(oc get ksvc helloworld-go -n ns1 -o jsonpath='{.status.url}') && \ curl $hello_route$ hello_route=$(oc get ksvc helloworld-go -n ns1 -o jsonpath='{.status.url}') && \ curl $hello_routeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Hello Go Sample v1!
Hello Go Sample v1!Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 웹 콘솔에서 모니터링 → 메트릭 인터페이스로 이동합니다.
입력 필드에 모니터링할 메트릭의 쿼리를 입력합니다. 예를 들면 다음과 같습니다.
revision_app_request_count{namespace="ns1", job="helloworld-go-sm"}revision_app_request_count{namespace="ns1", job="helloworld-go-sm"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 예:
myapp_processed_ops_total{namespace="ns1", job="helloworld-go-sm"}myapp_processed_ops_total{namespace="ns1", job="helloworld-go-sm"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 시각화된 메트릭을 모니터링합니다.
2.5.1. 대기열 프록시 메트릭 링크 복사링크가 클립보드에 복사되었습니다!
각 Knative 서비스에는 애플리케이션 컨테이너에 대한 연결을 프록시하는 프록시 컨테이너가 있습니다. 큐 프록시 성능에 대해 여러 메트릭이 보고됩니다.
다음 메트릭을 사용하여 요청이 프록시 측에 대기되었는지 및 애플리케이션에서 요청을 처리할 때의 실제 지연을 측정할 수 있습니다.
| 메트릭 이름 | 설명 | 유형 | 태그 | 단위 |
|---|---|---|---|---|
|
|
| 카운터 |
| 정수(단위 없음) |
|
| 수정 버전 요청의 응답 시간입니다. | 히스토그램 |
| 밀리초 |
|
|
| 카운터 |
| 정수(단위 없음) |
|
| 수정 버전 앱 요청의 응답 시간입니다. | 히스토그램 |
| 밀리초 |
|
|
| 게이지 |
| 정수(단위 없음) |
2.6. 서비스 메트릭 대시보드 링크 복사링크가 클립보드에 복사되었습니다!
네임스페이스별로 큐 프록시 메트릭을 집계하는 전용 대시보드를 사용하여 메트릭을 검사할 수 있습니다.
2.6.1. 대시보드에서 서비스의 메트릭 검사 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 로그인했습니다.
- OpenShift Serverless Operator 및 Knative Serving이 설치되어 있습니다.
프로세스
- 웹 콘솔에서 모니터링 → 메트릭 인터페이스로 이동합니다.
-
Knative 사용자 서비스(Queue 프록시 메트릭)대시보드를 선택합니다. - 애플리케이션에 해당하는 네임스페이스,구성 및 개정 버전을 선택합니다.
- 시각화된 메트릭을 관찰합니다.
3장. 클러스터 로깅 링크 복사링크가 클립보드에 복사되었습니다!
3.1. Serving 및 Eventing에 대한 로그 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
KnativeServing 및 KnativeEventing 사용자 정의 리소스(CR)를 사용하여 OpenShift Serverless Serving 및 OpenShift Serverless Eventing에 대한 로깅을 구성할 수 있습니다. 로깅 수준은 지정된 loglevel 값에 따라 결정됩니다.
3.1.1. 지원되는 로그 수준 링크 복사링크가 클립보드에 복사되었습니다!
다음 loglevel 값이 지원됩니다.
| 로그 수준 | 설명 |
|---|---|
|
| 세분화된 디버깅 |
|
| 일반 로깅 |
|
| 예기치 않은, 중요하지 않은 오류 |
|
| 심각한 오류; 정상적인 작업 중 예기치 않은 |
|
| 디버그 모드에서 패닉(crash)을 트리거합니다. |
프로덕션에 디버그 수준을 사용하면 성능에 부정적인 영향을 미칠 수 있습니다.
3.1.2. 로그 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
KnativeServing CR(사용자 정의 리소스) 및 KnativeEventing CR에서 Serving 및 Eventing에 대한 로깅을 구성할 수 있습니다.
프로세스
KnativeServing및KnativeEventingCR에서loglevel값을 설정하거나 수정하여 Serving 및 Eventing의 로그 설정을 구성합니다. 다음은 levelinfo로 설정된 가능한 모든 로깅 옵션을 포함하는 두 가지 예제 구성입니다.KnativeServing CR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KnativeEventing CR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3. 요청 로그 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
KnativeServing 사용자 정의 리소스(CR)의 observability 필드에서 서비스에 대한 요청 로깅을 구성할 수 있습니다.
요청 로깅 구성에 사용 가능한 매개변수에 대한 자세한 내용은 "요청 로깅의 매개변수"를 참조하십시오.
프로세스
KnativeServingCR의observability필드를 수정하여 서비스에 대한 요청 로깅을 구성합니다.KnativeServingCR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.4. 요청 로깅 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 요청 로깅을 구성하는 데 사용되는 매개변수를 설명합니다.
| 매개변수 | 유형 | 설명 |
|---|---|---|
|
|
부울( |
요청 로깅을 활성화하려면 |
|
|
부울( |
queue 프록시가 stdout에 대한 프로브 요청을 기록하도록 활성화하려면 |
|
|
| 요청 로그의 모양을 확인합니다. 한 줄로 로그를 여러 레코드로 분할하지 못하도록 합니다. |
logging.request-log-template 매개변수에는 다음 기능이 포함됩니다.
-
request는 서버에서 수신한 HTTP 요청을 나타내는http.Request입니다. response는 HTTP 응답을 나타내며 다음 필드를 포함합니다.-
코드는 HTTP 상태 코드입니다. -
크기는바이트 단위의 응답 크기입니다. -
대기 시간은응답 대기 시간(초)입니다.
-
개정버전에는 버전 세부 정보가 포함되어 있으며 다음 필드가 포함됩니다.-
name은 버전 이름입니다. -
네임스페이스는 버전의 네임스페이스입니다. -
서비스는
서비스이름입니다. -
구성은
구성의 이름입니다. -
PodName은 버전을 호스팅하는 Pod의 이름입니다. -
PodIP는 호스팅 pod의 IP 주소입니다.
-
4장. 추적 링크 복사링크가 클립보드에 복사되었습니다!
4.1. 요청 추적 링크 복사링크가 클립보드에 복사되었습니다!
분산 추적은 애플리케이션을 구성하는 다양한 서비스를 통해 요청 경로를 기록합니다. 이 기능은 분산 트랜잭션의 전체 이벤트 체인을 이해하기 위해 서로 다른 작업 단위에 대한 정보를 함께 연결하는 데 사용됩니다. 작업 단위는 여러 프로세스 또는 호스트에서 실행될 수 있습니다.
4.1.1. 분산 추적 개요 링크 복사링크가 클립보드에 복사되었습니다!
서비스 소유자로서 분산 추적을 사용하여 서비스 아키텍처에 대한 정보를 수집하도록 서비스를 조정할 수 있습니다. 최신 클라우드 네이티브, 마이크로서비스 기반 애플리케이션의 구성 요소 간 상호 작용, 모니터링, 네트워크 프로파일링 및 문제 해결에 분산 추적을 사용할 수 있습니다.
분산 추적을 사용하면 다음 기능을 수행할 수 있습니다.
- 분산 트랜잭션 모니터링
- 성능 및 대기 시간 최적화
- 근본 원인 분석 수행
Red Hat OpenShift 분산 추적은 다음 두 가지 주요 구성 요소로 구성됩니다.
- Red Hat OpenShift 분산 추적 platform - 이 구성 요소는 오픈 소스 Jaeger 프로젝트를 기반으로 합니다.
- Red Hat OpenShift 분산 추적 data collection - 이 구성 요소는 오픈 소스 OpenTelemetry 프로젝트를 기반으로 합니다.
이러한 두 구성 요소는 벤더 중립 OpenTracing API 및 계측을 기반으로 합니다.
4.2. Red Hat OpenShift distributed tracing 사용 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift distributed tracing을 OpenShift Serverless와 함께 사용하여 서버리스 애플리케이션을 모니터링하고 문제를 해결할 수 있습니다.
4.2.1. Red Hat OpenShift distributed tracing을 사용하여 분산 추적 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift 분석 추적은 추적 데이터를 수집, 저장 및 표시하기 위해 함께 작동하는 여러 구성 요소로 구성됩니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
- OpenShift Container Platform "Distributed tracing 설치" 문서에 따라 Red Hat OpenShift distributed tracing을 설치했습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
OpenTelemetryCollectorCR(사용자 정의 리소스)을 생성합니다.OpenTelemetryCollector CR의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat OpenShift distributed tracing이 설치된 네임스페이스에서 두 개의 포드가 실행되고 있는지 확인합니다.
oc get pods -n <namespace>
$ oc get pods -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cluster-collector-collector-85c766b5c-b5g99 1/1 Running 0 5m56s jaeger-all-in-one-inmemory-ccbc9df4b-ndkl5 2/2 Running 0 15m
NAME READY STATUS RESTARTS AGE cluster-collector-collector-85c766b5c-b5g99 1/1 Running 0 5m56s jaeger-all-in-one-inmemory-ccbc9df4b-ndkl5 2/2 Running 0 15mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 헤드리스 서비스가 생성되었는지 확인합니다.
oc get svc -n <namespace> | grep headless
$ oc get svc -n <namespace> | grep headlessCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
cluster-collector-collector-headless ClusterIP None <none> 9411/TCP 7m28s jaeger-all-in-one-inmemory-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP 16m
cluster-collector-collector-headless ClusterIP None <none> 9411/TCP 7m28s jaeger-all-in-one-inmemory-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP 16mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 서비스는 Jaeger, Knative Serving 및 Knative Eventing을 구성하는 데 사용됩니다. Jaeger 서비스의 이름은 다를 수 있습니다.
- "OpenShift Serverless Operator 설치" 설명서에 따라 OpenShift Serverless Operator를 설치합니다.
다음 KnativeServing CR을 생성하여
Knative Serving을 설치합니다.KnativeServing CR의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sample-rate는 샘플링 가능성을 정의합니다.sample-rate: "0.1"을 사용하면 10개의 추적 중 1개가 샘플링됩니다.
다음
KnativeEventingCR을 생성하여 Knative Eventing을 설치합니다.KnativeEventing CR의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sample-rate는 샘플링 가능성을 정의합니다.sample-rate: "0.1"을 사용하면 10개의 추적 중 1개가 샘플링됩니다.
Knative 서비스를 생성합니다.
서비스의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스에 대한 일부 요청을 수행합니다.
HTTPS 요청의 예
curl https://helloworld-go.example.com
$ curl https://helloworld-go.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Jaeger 웹 콘솔의 URL을 가져옵니다.
명령 예
oc get route jaeger-all-in-one-inmemory -o jsonpath='{.spec.host}' -n <namespace>$ oc get route jaeger-all-in-one-inmemory -o jsonpath='{.spec.host}' -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 Jaeger 콘솔을 사용하여 추적을 검사할 수 있습니다.
4.3. Jaeger 분산 추적 사용 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift distributed tracing의 모든 구성 요소를 설치하지 않으려면 OpenShift Serverless와 함께 OpenShift Container Platform에서 분산 추적을 계속 사용할 수 있습니다.
4.3.1. 분산 추적을 활성화하도록 Jaeger 구성 링크 복사링크가 클립보드에 복사되었습니다!
Jaeger를 사용하여 분산 추적을 활성화하려면 Jaeger를 독립 실행형 통합으로 설치하고 구성해야 합니다.
사전 요구 사항
- OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
- OpenShift Serverless Operator, Knative Serving 및 Knative Eventing을 설치했습니다.
- Red Hat OpenShift distributed tracing Platform Operator를 설치했습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. - 프로젝트를 생성하거나 애플리케이션 및 기타 워크로드를 생성할 수 있는 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
프로세스
다음을 포함하는
Jaeger사용자 정의 리소스 (CR) 파일을 생성하고 적용합니다.Jaeger CR
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger namespace: default
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger namespace: defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow KnativeServingCR을 편집하고 추적에 필요한 YAML 구성을 추가하여 Knative Serving에 대한 추적을 활성화합니다.Serving의 YAML 추적 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KnativeEventingCR을 편집하여 Knative Eventing의 추적을 활성화합니다.Eventing의 YAML 추적 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
jaeger 경로를 사용하여 Jaeger 웹 콘솔에 액세스하여 추적 데이터를 볼 수 있습니다.
다음 명령을 입력하여
jaeger경로의 호스트 이름을 가져옵니다.oc get route jaeger -n default
$ oc get route jaeger -n defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD jaeger jaeger-default.apps.example.com jaeger-query <all> reencrypt None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD jaeger jaeger-default.apps.example.com jaeger-query <all> reencrypt NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 콘솔을 보려면 브라우저에서 끝점 주소를 엽니다.