모니터 Trident
Trident Trident 성능을 모니터링하는 데 사용할 수 있는 일련의 Prometheus 메트릭 엔드포인트를 제공합니다.
개요
Trident 가 제공하는 측정항목을 사용하면 다음 작업을 수행할 수 있습니다.
-
트라이던트의 상태와 구성을 확인하세요. 작업이 얼마나 성공적인지, 예상대로 백엔드와 통신할 수 있는지 살펴볼 수 있습니다.
-
백엔드 사용 정보를 검토하고 백엔드에 프로비저닝된 볼륨 수와 사용된 공간의 양 등을 파악합니다.
-
사용 가능한 백엔드에 프로비저닝된 볼륨 양의 매핑을 유지합니다.
-
성과를 추적하세요. Trident 백엔드와 통신하고 작업을 수행하는 데 걸리는 시간을 살펴보세요.
|
|
기본적으로 Trident의 메트릭은 대상 포트에 노출됩니다. 8001 에서 /metrics 종점. 이러한 측정항목은 Trident 가 설치되면 기본적으로 활성화됩니다.
|
-
Trident 설치된 Kubernetes 클러스터.
-
프로메테우스 인스턴스. 이것은 될 수 있습니다 "컨테이너화된 Prometheus 배포" 또는 Prometheus를 실행하도록 선택할 수 있습니다. "네이티브 애플리케이션" .
1단계: Prometheus 대상 정의
Prometheus 대상을 정의하여 Trident 관리하는 백엔드, Trident가 생성하는 볼륨 등에 대한 메트릭과 정보를 수집해야 합니다. 이것 "블로그" Prometheus와 Grafana를 Trident 와 함께 사용하여 지표를 검색하는 방법을 설명합니다. 이 블로그에서는 Kubernetes 클러스터에서 Prometheus를 운영자로 실행하는 방법과 Trident 메트릭을 얻기 위해 ServiceMonitor를 만드는 방법을 설명합니다.
2단계: Prometheus ServiceMonitor 만들기
Trident 메트릭을 사용하려면 다음을 감시하는 Prometheus ServiceMonitor를 만들어야 합니다. trident-csi 서비스 및 청취 metrics 포트. ServiceMonitor 샘플은 다음과 같습니다.
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: trident-sm
namespace: monitoring
labels:
release: prom-operator
spec:
jobLabel: trident
selector:
matchLabels:
app: controller.csi.trident.netapp.io
namespaceSelector:
matchNames:
- trident
endpoints:
- port: metrics
interval: 15s
이 ServiceMonitor 정의는 다음에 의해 반환된 메트릭을 검색합니다. trident-csi 서비스를 특별히 찾습니다 metrics 서비스의 종료점. 결과적으로 Prometheus는 이제 Trident의 측정 항목을 이해하도록 구성되었습니다.
Trident 에서 직접 사용할 수 있는 메트릭 외에도 kubelet은 많은 것을 노출합니다. kubelet_volume_* 자체 메트릭 엔드포인트를 통한 메트릭. Kubelet은 연결된 볼륨, 처리하는 Pod 및 기타 내부 작업에 대한 정보를 제공할 수 있습니다. 참조하다 "여기" .
3단계: PromQL을 사용하여 Trident 메트릭 쿼리
PromQL은 시계열이나 표 형식의 데이터를 반환하는 표현식을 만드는 데 적합합니다.
사용할 수 있는 PromQL 쿼리는 다음과 같습니다.
Trident 건강 정보 받기
-
Trident 의 HTTP 2XX 응답 비율
(sum (trident_rest_ops_seconds_total_count{status_code=~"2.."} OR on() vector(0)) / sum (trident_rest_ops_seconds_total_count)) * 100
-
Trident 에서 상태 코드를 통해 수신한 REST 응답 비율
(sum (trident_rest_ops_seconds_total_count) by (status_code) / scalar (sum (trident_rest_ops_seconds_total_count))) * 100
-
Trident 가 수행한 작업의 평균 지속 시간(ms)
sum by (operation) (trident_operation_duration_milliseconds_sum{success="true"}) / sum by (operation) (trident_operation_duration_milliseconds_count{success="true"})
Trident 사용 정보 받기
-
평균 볼륨 크기
trident_volume_allocated_bytes/trident_volume_count
-
각 백엔드에서 프로비저닝된 총 볼륨 공간
sum (trident_volume_allocated_bytes) by (backend_uuid)
개별 볼륨 사용량 가져오기
|
|
이 기능은 kubelet 메트릭도 수집된 경우에만 활성화됩니다. |
-
각 볼륨의 사용 공간 비율
kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes * 100
Trident AutoSupport 원격 측정에 대해 알아보세요
기본적으로 Trident Prometheus 지표와 기본 백엔드 정보를 매일 NetApp 에 전송합니다.
-
Trident Prometheus 메트릭 및 기본 백엔드 정보를 NetApp 으로 전송하는 것을 중지하려면 다음을 전달합니다.
--silence-autosupportTrident 설치 중에 플래그가 표시됩니다. -
Trident 또한 다음을 통해 NetApp 지원에 컨테이너 로그를 온디맨드로 보낼 수 있습니다.
tridentctl send autosupport. Trident 실행하여 로그를 업로드해야 합니다. 로그를 제출하기 전에 NetApp의https://www.netapp.com/company/legal/privacy-policy/["개인정보 보호정책"^] . -
특별히 지정하지 않으면 Trident 지난 24시간 동안의 로그를 가져옵니다.
-
로그 보존 기간을 지정할 수 있습니다.
--since깃발. 예를 들어:tridentctl send autosupport --since=1h. 이 정보는 다음을 통해 수집 및 전송됩니다.trident-autosupportTrident 옆에 설치된 컨테이너입니다. 컨테이너 이미지는 다음에서 얻을 수 있습니다. "Trident AutoSupport" . -
Trident AutoSupport 개인 식별 정보(PII) 또는 개인정보를 수집하거나 전송하지 않습니다. 그것은 함께 제공됩니다 "최종 사용자 사용권 계약" 이는 Trident 컨테이너 이미지 자체에는 적용되지 않습니다. NetApp의 데이터 보안 및 신뢰에 대한 노력에 대해 자세히 알아보세요. "여기" .
Trident 가 보낸 페이로드의 예는 다음과 같습니다.
---
items:
- backendUUID: ff3852e1-18a5-4df4-b2d3-f59f829627ed
protocol: file
config:
version: 1
storageDriverName: ontap-nas
debug: false
debugTraceFlags: null
disableDelete: false
serialNumbers:
- nwkvzfanek_SN
limitVolumeSize: ""
state: online
online: true
-
AutoSupport 메시지는 NetApp의 AutoSupport 엔드포인트로 전송됩니다. 컨테이너 이미지를 저장하기 위해 개인 레지스트리를 사용하는 경우 다음을 사용할 수 있습니다.
--image-registry깃발. -
설치 YAML 파일을 생성하여 프록시 URL을 구성할 수도 있습니다. 이것은 다음을 사용하여 수행할 수 있습니다.
tridentctl install --generate-custom-yamlYAML 파일을 생성하고 추가하려면--proxy-url에 대한 주장trident-autosupport컨테이너에trident-deployment.yaml.
Trident 메트릭 비활성화
메트릭이 보고되지 않도록 비활성화하려면 사용자 정의 YAML을 생성해야 합니다(다음을 사용). --generate-custom-yaml 플래그)를 편집하여 제거하세요. --metrics 플래그가 호출되지 않도록 trident-main 컨테이너.