Teevity / ice

AWS Usage Tool
2.85k stars 434 forks source link

failed to get RI price for region and instance type #192

Open tizatron opened 8 years ago

tizatron commented 8 years ago

https://github.com/Netflix/ice/blob/5c76154d3771735618c9bd5c774470e7c3a592e0/src/java/com/netflix/ice/basic/BasicLineItemProcessor.java#L221

Is causing me some grief - mainly because it keeps clogging up my catalina.out file.

Anyone have any insight why I am throwing this error?

anpbabaki commented 8 years ago

same here..only on a few instance types. most of them are the t2 class

anpbabaki commented 8 years ago

I narrowed this down to an issue where certain reservation offerings are missing from the reservation_prices.whatever.whatever file.

I believe this issue is related to this section in BasicReservationService.java

                if (offer.getProductDescription().indexOf("Amazon VPC") >= 0)
                    continue;

The code is ignoring any reservation type with "Amazon VPC" in it, probably to avoid duplicates in the the reservation_prices.whatever.whatever file since they have different RI's for either EC2-Classic or VPC. This was done during the introduction of VPC's, but the problem is, AWS is phasing out the non Amazon VPC reservation types, so the new instance classes like m4 and t2 are never being added and thereby causing the errors above. Go into the AWS console and try to purchase a t2 or m4 non Amazon VPC reservation, it will tell you that there are none available. I changed the code to

                if (offer.getProductDescription().indexOf("Amazon VPC") < 0)
                 continue;

Now it will take onty the reservation types WITH "Amazon VPC" in the description, which should take care of all of them. This change got rid of all the errors for me, and now ICE accurately reflects my RI prices for the new classes like m4 and t2.

anpbabaki commented 8 years ago

Well now Ive run into another problem with the above change. All reserved costs are now being rolled up into UpFrontAmortized.

anpbabaki commented 8 years ago

OK second issue was occuring because once I changed the filter to get only the VPC RI's, the RI prices for both default and dedicated tenancy were being added to the reference file and apparently causing some havoc . I fixed the second issue by filtering out the dedicated RI's (i dont use them myself)

                           if (offer.getInstanceTenancy().indexOf("default") == -1)
                           continue;
PabloCastellano commented 7 years ago

After applying these two changes said by @anpbabaki I still get my logs flooded with "failed to get RI price for {region} {instancetype}"

CpuID commented 6 years ago

Seeing this issue using 1.1.2 - would love to know how to resolve it. Seeing it for mostly t2, c4 and r4 instances.