12.3. Prometheus의 페더레이션 끝점을 사용하여 메트릭 쿼리

OpenShift Container Platform 4.10.17에서 페더레이션 끝점을 사용하여 클러스터 외부의 네트워크 위치에서 플랫폼 및 사용자 정의 메트릭을 스크랩할 수 있습니다. 이렇게 하려면 OpenShift Container Platform 경로를 통해 클러스터의 Prometheus /federate 끝점에 액세스합니다.

주의

지표 데이터 검색의 지연은 페더레이션을 사용할 때 발생합니다. 이 지연은 스크랩 지표의 정확성과 타임라인에 영향을 미칠 수 있습니다.

페더레이션 끝점을 사용하면 특히 대규모 지표 데이터를 검색하는 데 페더레이션 엔드포인트를 사용하는 경우 클러스터의 성능과 확장성을 저하시킬 수 있습니다. 이러한 문제를 방지하려면 다음 권장 사항을 따르십시오.

  • 페더레이션 엔드포인트를 통해 모든 메트릭 데이터를 검색하지 마십시오. 제한된 집계 데이터 세트를 검색하려는 경우에만 쿼리합니다. 예를 들어 각 요청에 대해 1,000개 미만의 샘플을 검색하면 성능 저하 위험을 최소화하는 데 도움이 됩니다.
  • 페더레이션 엔드포인트를 자주 쿼리하지 않도록 합니다. 쿼리를 30초마다 최대 1개로 제한합니다.

클러스터 외부에서 대량의 데이터를 전달해야 하는 경우 대신 원격 쓰기를 사용합니다. 자세한 내용은 원격 쓰기 스토리지 구성 섹션을 참조하십시오.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • OpenShift Container Platform 경로에 대한 호스트 URL이 있습니다.
  • cluster-monitoring-view 클러스터 역할의 사용자로 클러스터에 액세스하거나 네임스페이스 리소스에 대한 get 권한을 사용하여 전달자 토큰을 가져올 수 있습니다.

    참고

    전달자 토큰 인증은 페더레이션 엔드포인트에 액세스하기 위해서만 사용할 수 있습니다.

절차

  1. 전달자 토큰을 검색합니다.

    $ token=`oc whoami -t`
  2. /federate 경로에서 메트릭을 쿼리합니다. 다음 예제에서는 메트릭을 쿼리 합니다.

    $ curl -G -s -k -H "Authorization: Bearer $token" \
        'https:/<federation_host>/federate' \ 1
        --data-urlencode 'match[]=up'
    1
    <federation_host>는 페더레이션 경로의 호스트 URL을 대체합니다.

    출력 예

    # TYPE up untyped
    up{apiserver="kube-apiserver",endpoint="https",instance="10.0.143.148:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035322214
    up{apiserver="kube-apiserver",endpoint="https",instance="10.0.148.166:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035338597
    up{apiserver="kube-apiserver",endpoint="https",instance="10.0.173.16:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035343834
    ...