cb-spider icon indicating copy to clipboard operation
cb-spider copied to clipboard

[Azure:PriceInfo] 2nd Test Results and Issue

Open powerkimhub opened this issue 1 year ago • 11 comments

※ 참고: (2) CB-Spider Price Info 기능 및 Filter 검증 시험 2차 시험 현황

  • 시험 결과 관련 정보 또는 이슈가 아래와 같습니다.

[ListProductFamily]

  • Connection과 동일한 Region만 fetch, 그 외 Region은 []
  • Connection 다른 Region 예시: Fail
    • image

  • Connection 동일한 Region 예시: OK
    • image

  • AI + Machine Learning 등 모든 ProductFamily 목록 제공: OK
  • 그런데, 현재 Spider 규격의 범위는 Compute Infra에 포함 되는 제품/가격들만이 대상이며,
    • AI + Machine Learning 등과 같은 다른 서비스들은 추후 별도 추가 고려 예정(아마도, 힘들 듯합니다만 개념적으로 보자면)
    • 현재 Spider에서는 대략, Compute Instance, Load Balancer, Storage 등을
      • Compute InfraProductFamily 종류로 제공하고 있습니다.(향후 추가 가능)
    • 따라서, 현재 버전에서 Azure ProductFamily에서는 Compute, Networking, Storage 등이 대상이 될 것 같습니다.
  • Driver에서는, 현재처럼 모두 제공해주시고, Spider 서버에서 이 부분은 정리하도록 하겠습니다.
    • 이러한, 상황만 인지해주시면 되겠습니다.

[GerPriceInfo]

  • OK (약 3초 정도 소요)

  • Filter 시험

    • "pricingPolicy" : "Reservation": OK

      • image
    • "leaseContractLength" : "1 Hour": OK

      • image

[Product Info 값]

  • vCPU, Memory 정보 등을 제공하지 않는 VM Spec이 존재함
    • => 다른 API 활용을 통해서 관련 정보를 제공할 수 있는 방법 확인 필요합니다.
    • 예시
      • image

- "Memory" : "4 GiB" filter를 걸었는데, "64 GiB" 등이 제공되고 있음, - => **"4 GiB" 제품/가격 정보만 제공되어야 합니다.** - ![image](https://github.com/cloud-barista/cb-spider/assets/46367962/8f185d07-b067-4b85-9179-9b39a7eb1b2a)
  • 마찬가지로, "vCPU" : "2" filter를 걸었는데, "20", "32" 이 제공되고 있음.

  • Storage ProductFamily의 경우에도

    • => 다른 API 활용을 통해서 관련 정보를 제공할 수 있는 방법 확인 필요합니다.
    • image

powerkimhub avatar Feb 15 '24 04:02 powerkimhub

  • Product Family가 조회되지 않는 경우 : Region이 같은 경우만 조회되는 것은 아니고, 특정 몇몇 Region의 이름의 경우 API 단에서 조회되는 내용이 없어서 발생하는 문제입니다. 조회되는 Data가 없을경우 Region 목록에서 제외할지 의견 부탁드립니다. 예시> Region 명 - asis : https://prices.azure.com/api/retail/prices?$filter=armRegionName%20eq%20%27asia%27 Region 명 - asispacific : https://prices.azure.com/api/retail/prices?$filter=armRegionName%20eq%20%27asiapacific%27
  • Product Family 종류 관련 : 인지하고 있도록 하겠습니다.
  • vCPU, Memory 안나오는 부분 : 추가적인 API를 활용할 수 있는지 확인해 보도록 하겠습니다.
  • Filter 매칭 관련 : 현재 전체 매칭이 아닌 contains 매칭으로 하여서 단어가 포함되어 있는 경우 Filter 되게 하였습니다. 전체 매칭으로 변경하는 방안으로 하겠습니다. (현재 IBM도 동일하게 동작.)

리뷰해 주셔서 감사합니다.

ish-hcc avatar Feb 15 '24 05:02 ish-hcc

  • Product Family가 조회되지 않는 경우 : Region이 같은 경우만 조회되는 것은 아니고, 특정 몇몇 Region의 이름의 경우 API 단에서 조회되는 내용이 없어서 발생하는 문제입니다. 조회되는 Data가 없을경우 Region 목록에서 제외할지 의견 부탁드립니다. 예시> Region 명 - asis : https://prices.azure.com/api/retail/prices?$filter=armRegionName%20eq%20%27asia%27 Region 명 - asispacific : https://prices.azure.com/api/retail/prices?$filter=armRegionName%20eq%20%27asiapacific%27

@ish-hcc

  • 아, 그런 일이...
  • 해당 Region들은,
  • ProductFamily 목록은 조회할 수는 없어도, GetPriceInfo()로 정보 제공은 가능한지요?
  • 음... 가격 정보를 제공하는 Region이 정해져 있는지요?
  • 그렇다면, 가격정보를 제공하는 Region 목록 확인 및 공유 부탁 드립니다.

powerkimhub avatar Feb 15 '24 06:02 powerkimhub

@powerkimhub 넵 말씀하신 부분은 확인해 보도록 하겠습니다. 추가적으로 질문드릴 사항이 있는데, Filter 매칭 관련하여 말씀하신대로 2를 검색하면 CPU나 Memory에서 2가 들어가면 검색 결과에 표시되게 됩니다. (contains 함수 사용) 그런데 이러한 스펙 정보말고 상세 내용에 대한 검색은 완전한 매칭에 대한 결과만 표시되도록 하면 검색 결과에 표시가 되지 않을꺼 같아. Filtering 매칭 관련하여 스펙에 관련된 부분들만 완전한 매칭으로 되게 하는것이 좋을지 의견을 말씀해 주시면 감사하겠습니다.

ish-hcc avatar Feb 15 '24 09:02 ish-hcc

@powerkimhub 넵 말씀하신 부분은 확인해 보도록 하겠습니다. 추가적으로 질문드릴 사항이 있는데, Filter 매칭 관련하여 말씀하신대로 2를 검색하면 CPU나 Memory에서 2가 들어가면 검색 결과에 표시되게 됩니다. (contains 함수 사용) 그런데 이러한 스펙 정보말고 상세 내용에 대한 검색은 완전한 매칭에 대한 결과만 표시되도록 하면 검색 결과에 표시가 되지 않을꺼 같아. Filtering 매칭 관련하여 스펙에 관련된 부분들만 완전한 매칭으로 되게 하는것이 좋을지 의견을 말씀해 주시면 감사하겠습니다.

  • 아, 그런 부분이 있네요.
  • 현황 확인/고려 후 방안 공유 드리도록 하겠습니다.

powerkimhub avatar Feb 16 '24 02:02 powerkimhub

@ish-hcc

  • Filter 규격은 다음 링크에서 언급한 바와 같이 Strict Match(전체 동일할 때)로 해주시면 되겠습니다.

  • 참고: AWS Filter Test 결과(Strict Match)
    * '4 GiB' => 결과 존재
    $ aws pricing get-products --max-results 1 --service-code AmazonEC2 --filters Type=TERM_MATCH,Field=memory,Value='4 GiB' | jq '.PriceList[] | fromjson' | grep memory
          "memory": "4 GiB",
    
    * '4' => 결과 없음
    $ aws pricing get-products --max-results 1 --service-code AmazonEC2 --filters Type=TERM_MATCH,Field=memory,Value='4' | jq '.PriceList[] | fromjson' | grep memory
    
    * 'convertible' => 결과 존재
    $ aws pricing get-products --max-results 1 --service-code AmazonEC2 --filters Type=TERM_MATCH,Field=OfferingClass,Value='convertible' | jq '.PriceList[] | fromjson' | grep memory
          "memory": "4 GiB",
    
    * 'convertibl' => 결과 없음
    $ aws pricing get-products --max-results 1 --service-code AmazonEC2 --filters Type=TERM_MATCH,Field=OfferingClass,Value='convertibl' | jq '.PriceList[] | fromjson' | grep memory
    

powerkimhub avatar Feb 19 '24 08:02 powerkimhub

Fixed issues. :) https://github.com/cloud-barista/cb-spider/pull/1092

ish-hcc avatar Feb 23 '24 09:02 ish-hcc

@ish-hcc

  • 현재 이슈에는 몇가지 세부 이슈 항목들이 존재합니다.
  • 혹시, PR 1092를 통해서 포함된 세부 이슈들 전체가 해결 되었는 지, 현황 공유 부탁드립니다.

powerkimhub avatar Feb 23 '24 09:02 powerkimhub

@powerkimhub 아.. 정보 제공 관련하여 해결 안된 부분이 있네요. 아래 항목들은 좀 더 확인해 보도록 하겠습니다.

  • vCPU, Memory 정보 등을 제공하지 않는 VM Spec이 존재함 => 다른 API 활용을 통해서 관련 정보를 제공할 수 있는 방법 확인 필요합니다.

  • Storage ProductFamily의 경우에도 => 다른 API 활용을 통해서 관련 정보를 제공할 수 있는 방법 확인 필요합니다.

그 외,

  • 필터링 기능을 통한 검색시 완전한 매칭이 되도록 하는 부분 -> 해결
  • 일부 지역에서 Product Family 목록이 출력 되지 않는 부분 -> 해결 but 일부 특정 지역 정보 미제공
    • Azure에서 지역 목록을 Azure 내부에서 분류 목적으로 사용되는 Logical Region과
    • 실제 존재하는 Region에 해당되는 Physical Region으로 구분된다는 것을 알았습니다.
    • 그래서 Region 목록을 출력할때 Physical Region만 출력하도록 하여 모든 지역에 대해 Product Family를 가져오도록 하였습니다.
    • 하지만, 테스트시 아래 2지역은 Physical Region임에도 Product Family가 존재하지 않았습니다.
      • brazilus
      • eastusstg
      • 다음 URL로 직접 조회해 봐도 가격 정보가 없는 것을 확인했습니다.
        • https://prices.azure.com/api/retail/prices?$filter=armRegionName eq 'brazilus'
        • https://prices.azure.com/api/retail/prices?$filter=armRegionName eq 'eastusstg'

ish-hcc avatar Feb 26 '24 05:02 ish-hcc

@ish-hcc

  • 확인 감사드립니다.
  • `Logical Region 목록은 제공하지 않아도
  • 사용자 입장에서는 크게 문제가 없을 지요?

powerkimhub avatar Feb 26 '24 06:02 powerkimhub

@powerkimhub 네 여기 있는 댓글을 참고하여 https://stackoverflow.com/questions/69508883/azure-regions-what-does-stage-mean

직접 확인해 봤을때 Azure에서 실제로 제공되는 지역과 동일한 것으로 확인됩니다. https://azure.microsoft.com/en-us/explore/global-infrastructure/geographies/#geographies

ish-hcc avatar Feb 27 '24 01:02 ish-hcc

@ish-hcc

  • 넵, 확인 캄사드립니다.

powerkimhub avatar Feb 27 '24 01:02 powerkimhub