Azure Storage 서비스 모니터링

Instana 에이전트를 설치하면 Azure Storage 서비스 센서가 자동으로 배포 및 설치됩니다.

참고: Azure 문서를 통해 지원되는 다른 Azure 서비스에 대해 알아보세요.

구성

Azure Storage 센서를 비활성화할 수 있으며, 태그와 리소스 그룹을 기준으로 필터링할 수 있습니다. 다음과 <agentinstall_dir>/etc/instana/configuration.yaml 같은 방법으로 에이전트 설정을 통해 Azure Storage 센서를 구성할 수 있습니다:

com.instana.plugin.azure.storage:
  # Valid values: true, false
  enabled: false # enabled (true) by default
  # Comma separated list of tags in key:value format
  include_tags:
  # Comma separated list of tags in key:value format
  exclude_tags:
  # Comma separated list of resource groups
  include_resource_groups:
  # Comma separated list of resource groups
  exclude_resource_groups:
 

Azure Storage 센서를 비활성화할 수 있습니다. Azure Storage 서비스에 대한 모니터링을 비활성화하려면 다음 구성을 사용하십시오:

com.instana.plugin.azure.storage:
  enabled: false
 

여러 태그 및 자원 그룹을 쉼표로 구분하여 정의할 수 있습니다. 태그는 :로 구분된 키-값 쌍으로 제공되어야 합니다. 구성을 더 쉽게 하기 위해 감지에 포함하거나 감지에서 제외할 태그 및 자원 그룹을 정의할 수 있습니다. 두 목록 (include및 exclude) 에서 태그 또는 자원 그룹을 정의하는 경우 제외 목록의 우선순위가 더 높습니다. 서비스 필터링이 필요하지 않은 경우 구성을 정의하지 않아야 합니다. 필터링을 사용하기 위해 모든 값을 반드시 정의할 필요는 없습니다.

태그별 서비스를 감지에 포함시키려면 다음 구성을 사용하십시오.

com.instana.plugin.azure.storage:
  include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)
 

발견에서 태그별 서비스를 제외하려면 다음 구성을 사용하십시오.

com.instana.plugin.azure.storage:
  exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)
 

자원 그룹별 서비스를 감지에 포함시키려면 다음 구성을 사용하십시오.

com.instana.plugin.azure.storage:
  include_resource_groups: # Comma separated list of resource groups (e.g. rg_prod,rg_staging)
 

감지에서 자원 그룹별 서비스를 제외하려면 다음 구성을 사용하십시오.

com.instana.plugin.azure.storage:
  exclude_resource_groups: # Comma separated list of resource groups (e.g. rg_dev,rg_test)
 

감지 필터링은 모든 Azure 서비스에 대해 글로벌 레벨에서 구성할 수 있습니다. Azure Storage 서비스에 필터를 정의할 경우, 전역 필터가 재정의됩니다. 글로벌 Azure 서비스 발견 필터링에 대한 자세한 정보를 보려면 Azure 구성을 방문하십시오. Azure Storage 최근 ‘ Azure ’ 대기열 기능이 추가되었습니다.

메트릭 콜렉션

메트릭을 확인하려면 Instana 사용자 인터페이스의 사이드바에서 ‘인프라(Infrastructure)’를 선택하고, 모니터링 중인 특정 호스트를 클릭하면 수집된 모든 메트릭과 모니터링 중인 프로세스가 표시된 호스트 대시보드를 볼 수 있습니다.

스토리지 서비스에 대한 메트릭은 1분마다 가져오며, 이는 Azure 가 이러한 서비스의 모니터링을 위해 제공하는 해상도입니다.

확장은 1시간마다 가져오는 Azure 큐에 대해 세 개의 새 메트릭을 제공합니다.

구성 데이터

스토리지

스토리지 서비스 세부사항 설명
이름 스토리지 서비스 인스턴스의 이름입니다.
리소스 그룹 스토리지 서비스 인스턴스의 자원 그룹입니다.
위치 인스턴스가 있는 지역
구독 ID 스토리지 서비스 인스턴스의 등록 ID입니다.
유형 스토리지 유형
유형 스토리지 계정의 유형을 표시합니다.
상태 인스턴스의 현재 배치 상태입니다.
액세스 계층 스토리지 계정의 액세스 티어입니다.
Blob 기능 스토리지 계정이 Azure Data Lake Gen2 기능 (ADLS Gen2) 으로 업그레이드되었는지 여부를 표시합니다.

큐 세부사항 설명
이름 큐의 이름입니다.
리소스 그룹 큐가 속한 스토리지 서비스 인스턴스의 자원 그룹입니다.
위치 인스턴스가 있는 지역입니다. 이 경우에는 스토리지입니다.
구독 ID 스토리지 서비스 인스턴스의 등록 ID입니다.
유형 큐 유형

Blob

Blob 세부사항 설명
이름 Blob의 이름입니다.
리소스 그룹 Blob가 속한 스토리지 서비스 인스턴스의 자원 그룹입니다.
위치 인스턴스가 있는 지역입니다. 이 경우 리젼은 스토리지입니다.
구독 ID 스토리지 서비스 인스턴스의 등록 ID입니다.
유형 BLOB 유형

성능 매트릭

스토리지 서비스 메트릭 설명
트랜잭션
총 트랜잭션 수 스토리지 서비스 또는 지정된 API 작업에 대한 요청 수. 이 수에는 성공 및 실패한 요청과 오류를 생성한 요청이 포함됩니다. 응답 유형의 수를 나타내기 위해 ‘ ResponseType ’ 차원을 사용하십시오.
Ingress
총 Ingress(바이트) 유입 데이터의 양 (바이트) 입니다. 이 수치에는 외부 클라이언트에서 Azure Storage 으로 유입되는 트래픽과 Azure 내부의 트래픽이 모두 포함됩니다.
평균 평균 유입입니다.
최소 최소 유입입니다.
최대 최대 유입입니다.
Egress
총 Egress(바이트) 송신 데이터의 양 (바이트) 입니다. 이 수치에는 외부 클라이언트에서 Azure Storage 으로 전송되는 트래픽과 Azure 내부의 트래픽이 모두 포함됩니다. 결과적으로 이 숫자는 청구 가능한 egress를 반영하지 않습니다.
평균 평균 송신입니다.
최소 최소 송신입니다.
최대 최대 송신입니다.
서버 대기 시간
평균 Azure Storage 가 요청을 성공적으로 처리하는 데 소요되는 평균 지연 시간(밀리초 단위). 이 값은 AverageE2ELatency에 지정된 네트워크 대기 시간을 포함하지 않습니다.
최소 최소 대기 시간입니다.
최대 최대 대기 시간입니다.
E2E 대기 시간
평균 스토리지 서비스 또는 지정된 API 작업에 대한 성공적인 요청의 평균 종단 간 지연 시간(밀리초 단위). 이 값에는 Azure Storage 내에서 요청을 읽고, 응답을 전송하며, 응답 수신 확인을 받는 데 필요한 처리 시간이 포함됩니다.
최소 최소 대기 시간입니다.
최대 최대 대기 시간입니다.
가용성
평균 스토리지 서비스 또는 지정된 API 작업의 가용성 비율. 가용성은 ‘ TotalBillableRequests ’ 값을 예상치 못한 오류가 발생한 요청을 포함한 해당 요청 수로 나눈 값으로 계산됩니다. 예상치 못한 오류가 발생하면 스토리지 서비스 또는 지정된 API 작업의 가용성이 저하됩니다.
최소 최소 가용성입니다.
최대 최대 가용성입니다.
대기열 용량
평균 저장소 서비스 또는 지정된 API 작업의 큐 용량(숫자로 표시됨).
대기열 수
평균 저장소 서비스 또는 지정된 API 작업의 대기열 개수를 숫자로 표시한 것입니다.
대기열 메시지 수
평균 저장소 서비스 또는 지정된 API 작업의 대기열 메시지 수를 숫자로 나타낸 값입니다.
BLOB 용량
평균 스토리지 계정의 BLOB 서비스에서 사용하는 스토리지 크기 (바이트) 입니다.
BLOB 수
평균 스토리지 계정에 저장된 BLOB 오브젝트 수입니다.
BLOB 컨테이너 개수
평균 스토리지 계정의 BLOB 컨테이너 수입니다.
Blob Ingress
총계 수신 데이터의 총 양 (바이트) 입니다. 이 수에는 외부 클라이언트에서 Azure 스토리지로의 유입 및 Azure내의 유입이 포함됩니다.
평균 유입 데이터의 평균 양입니다.
최소 유입 데이터의 최소 양입니다.
최대 유입 데이터의 최대 양입니다.
Blob Egress
총계 송신 데이터의 총 양입니다. 이 수에는 Azure 스토리지에서 외부 클라이언트로의 송신 및 Azure내의 송신이 포함됩니다. 결과적으로 이 숫자는 청구 가능한 egress를 반영하지 않습니다.
평균 송신 데이터의 평균 양입니다.
최소 송신 데이터의 최소 양입니다.
최대 송신 데이터의 최대 양입니다.
Blob 서버 대기 시간
평균 Azure 스토리지에서 성공적인 요청을 처리하는 데 사용되는 평균 시간입니다. 이 값은 SuccessE2ELatency에 지정된 네트워크 대기 시간을 포함하지 않습니다.
최소 BLOB 지표의 최소 서버 대기 시간입니다.
최대 BLOB 지표의 최대 서버 대기 시간입니다.
Blob E2E 대기 시간
평균 스토리지 서비스 또는 지정된 API 작업에 대해 성공적으로 수행된 요청의 평균 종단 간( E2E ) 지연 시간(단위: 밀리초). 이 값에는 Azure Storage 내에서 요청을 읽고, 응답을 전송하며, 응답 수신 확인을 받는 데 필요한 처리 시간이 포함됩니다.
최소 BLOB 메트릭의 최소 종단간 대기 시간입니다.
최대 BLOB 지표의 최대 엔드 투 엔드 대기 시간입니다.

문제점 해결

Azure API 속도 제한 (429 오류)

문제 : 많은 블롭 컨테이너와 큐가 포함된 다수의 스토리지 계정을 모니터링할 경우, 에이전트 로그에서 Azure API 스로틀링 오류( HTTP 429)가 발생할 수 있습니다.

중요: 여러 서비스 주체를 추가하더라도 이 스로틀링 제한은 우회되지 않습니다. Azure 서비스 주체가 아닌 구독 단위로 스로틀링 제한이 적용됩니다.

리소스 계산 : 리소스 규모 산정을 위해 스토리지 계정 자체뿐만 아니라 각 Blob 컨테이너와 각 큐도 개별 리소스로 간주됩니다. 자세한 내용은 사이즈 표 를 참조하십시오.

해결책 :

  1. 포함 또는 제외 필터를 사용하여 모니터링 범위를 축소하고, 중요한 스토리지 계정만 모니터링하도록 설정합니다:
    com.instana.plugin.azure.storage:
      include_tags: env:prod,critical:true
      # or
      include_resource_groups: rg_production_storage
      # or exclude non-critical accounts
      exclude_tags: env:dev,env:test
  2. 여러 Azure 구독에 리소스를 분배하세요 : Azure 의 사용 제한은 구독별로 적용됩니다. 저장소 계정이 여러 개인 경우, 여러 Azure 구독에 걸쳐 계정을 정리하는 것을 고려해 보세요. 리소스를 분산 배치하면 스로틀링 문제를 줄이는 데 도움이 될 수 있습니다.
  3. 세부적인 스토리지 모니터링이 필요하지 않은 경우, ` Azure Storage ` 센서를 비활성화하십시오:
    com.instana.plugin.azure.storage:
      enabled: false

Azure 의 요청 제한에 대한 자세한 내용은 Azure Resource Manager request limits and throttling을 참조하세요.

Azure 서비스 규모 설정에 대한 자세한 내용은 ‘다중 구독 모니터링을 위한 에이전트 규모 설정 및 리소스 확장성’을 참조하세요.