Open Gaploid opened 6 years ago
Tagging people that might know: @wilcobmsft @kjeur @panda-wang
Hi, I am also looking for an RateCard API which shows data about reserved instances. Is there any update on this?
Thanks, Aditya
@juhee0202 ?
Is this a dup of https://github.com/Azure/azure-rest-api-specs/issues/1897 ?
@mozehgir What does the tag Reservations
means in this context?
Any update on this? If so, is there a link to where the RI rate card APIs are described or any experience from anyone using it? The pricing calculator is able to provide the info for RI but the ratecard API for this is still MIA.
Yep, it seems that's much easier to sniff calculator backend API and use it instead of official rate card API.
+1
+1
@lmazuel is there any update here? Rate Card API in general seems poorly documented and supported by SDKs. Latest API version is 2016-08-31-preview which is not in this repo or any of the SDKs, despite being 3 years old (e: checked Go, Python, or JS).
Documentation has not been updated and isn't shown on the current version of docs.microsoft.com because it's marked as a 'previous version'? Do you know what is going on with this API or who owns it?
Can we try to get the owners to push specs and get these downstream into SDKs?
Barring that, can we get this API properly spec'd and documented as a complement? https://azure.microsoft.com/api/v2/pricing
We are trying to build internal tooling which depends on this information being programmatically available, I don't want to invest in this if the APIs are not actively supported.
I'll do some sleuthing myself, but figured you may have an easy answer.
@pargall @BryanLa sorry to pick on you, you have the only commit history I can find. Are you the owners of this API? If so, what is the current status of it? If not, do you know who is?
Is it replaced by e.g. Consumption API? https://docs.microsoft.com/en-us/rest/api/consumption/pricesheet/getbybillingperiod#pricesheetproperties
Also seems like both Consumption API and RateCard API support only specific agreements:
No subscriptions were found for guid(s) GUID. Only EA subscriptions are supported for this request. Please ensure that offer type of the subscription is either AZR-0017P or AZR-0148P.
Looking here, I can see 0148P is Enterprise Dev/Test, and though not listed I know 0017P is EA. Is there no API for general price estimation, except what is exposed at https://azure.microsoft.com/api/v2/pricing ?
+1 here. Trying to work through the APIs and not having a ton of success. Pricing, including RIs, for non-EA agreements is a pretty big part of an internal solution we're working on.
@alexeldeib - no worries.. I'm not the owner anymore, but let me see if I can find someone to comment..
@alexeldeib Have you discovered anything new in the past two days? A programmatic way of accessing pricing information is imperative for the solution we are working on. AWS, in comparison, makes their pricing info publicly available through API, as well as CSV and JSON.
Another issue I've noticed, for anyone trying to use ratecard API is that cursory price comparison returned different prices through pricing calculator vs ratecard API.
@denissa I'm discussing this with a few people offline, I'll update back here/ask someone to comment on behalf of PG once it's clear what the status is.
I would expect Rate Card API and the public pricing calculator to be different in some cases, yes. Rate Card API is specific to a subscription, including e.g. customer-negotiated discounts from what I understand. Public pricing calculator has list prices only.
Here's the latest:
For PAYG accounts, Rate Card API is still the latest. For Enterprise customers, there is the older pricesheet API and a newer API depending on the age of the agreement.
As far as this issue, reserved instances, you can fetch the reservations themselves programmatically: https://docs.microsoft.com/en-us/rest/api/consumption/reservationsdetails
My understanding of the way this works is that the price is no different, so you have the meters already for normal resource (disclaimer: dev, not pricing expert).
A typical use case is someone who is interested in the costs of the Azure platform to talk to the APIs and integrate this into their tooling.
Imagine an ISV or customer wanting to have an overview of all our (list) VM sizes, and their prices per region, per contract form (PAYG vs RI1Y vs RI3Y) & license forms (Linux, Windows, SQL Enterprise/Standard, RHEL etc, DataBricks, ...). How would one go about on getting that info? The same goes for any other service... (Storage Blob, Storage Disk, Backup, SQL, CosmosDB, DataBricks, ...).
From experience, using the RateCard API is very hard to parse and get an exhaustive list of all the VM sizes. At the moment the only feasible way to realize this is by scavenging the back-end APIs of the Azure Calculator. As these are not designed to be consumed outside by outside parties, this involves great risk of having things broken.
Imho, The public list prices of our services should be easily & openly consumable (without involving overly complex ETL jobs to process the data).
A typical use case is someone who is interested in the costs of the Azure platform to talk to the APIs and integrate this into their tooling.
Imagine an ISV or customer wanting to have an overview of all our (list) VM sizes, and their prices per region, per contract form (PAYG vs RI1Y vs RI3Y) & license forms (Linux, Windows, SQL Enterprise/Standard, RHEL etc, DataBricks, ...). How would one go about on getting that info?
Unfortunately I don't need to imagine, this is what I am attempting š My understanding today is that the the Rate Card meters are your best bet. I've passed some feedback to the appropriate team about this. They aren't able to offer any commitments, but understand the desire to improve this experience.
This is more of a hack, however slightly better than scraping the pricing calculator. If you would like to have an overview of VM sizes and their prices per region (nothing on contract or license forms) you can join output of RateCard API and Resource SKUs API. The problem, however, is that to my knowledge Resource SKUs API doesn't expose meter IDs, so there's no way to definitively link the data from two APIs. However, it seems possible to link (possibly somewhat accurately) them using Resource SKUs API's "Size" with RateCard API's "MeterName".
Then you have to match Locations and MeterRegion using some sort of a lookup table as the naming convention is different. E.g "eastus" vs "US East"
This is the best I could find aside from scraping the pricing calculator, if somebody has a better approach please let me know until MS gets their APIs together to be more inline with what AWS offers here: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html (Which, in my opinion is a better way of providing pricing information)
^this is also the track I am pursuing.
Hey, guys @DenisSa and @alexeldeib I've already done that. I`ve created a parser that combines data from RateCard and Resource API. You can see that here https://azureprice.net probably I can create an API facade for that for external parties. let me know if you are interested.
@gaploid well hello! I saw azureprice.net and love what youāve done. That data joins exactly the way Iād want to use it programmatically. If youāre able to create a public interface, that would be awesome. If not, if youāre able to share/link the source of the site, iād be interested in lending a hand to achieve the same :)
Hey, how many calls to API are you planning to make?
Short answer: many, but spread across many individual clients making a relatively small number of calls each.
Iām hoping to join the SKU + Rate Card data to implement a pricing sensitive extension to cluster autoscaler for Kubernetes. The thinking is, user can specify some set of āallowedā SKUs (or use SKUs API itself to fetch the list dynamically filtered to allowed for subscription), and based on the user workload autoscaler can add VMs to a cluster based on some sort of least-cost estimation. Thereās something similar already for GCE, thereās a description over in one of the Kubernetes repos if youāre interested (but leaves getting the pricing data out of scope).
This would be a service deployed to customer VMs (pods in the cluster) with its own service principal authenticated to the customer subscription.
More generally, I do feel thereās immediate value in packaging the combo of resource + pricing data so anyone (like the people in this thread) can easily use it. Iām open to any kind of work to move us in that direction, if thatās something you think would be possible on top of what youāve already done!
Hope that adds some context. Happy to discuss offline if thatās easier, preferred email is my GH alias @ gmail
Hi, Reserved instances were launched in September 2017 and there is still no data about it in API. Any plans to add reserved instances in RateCard API?
Victor