Is there a way to get consolidated IBM Cloud billing in one api call
I need to get a consolidated bill based on organizations or resource groups. Something like:
org1 $100
org2 $200
rg1 $150
Is there a way I can get this in one api call? I can get a detailed bill using following cli command:
ibmcloud billing account-usage
ibm-cloud billing
add a comment |
I need to get a consolidated bill based on organizations or resource groups. Something like:
org1 $100
org2 $200
rg1 $150
Is there a way I can get this in one api call? I can get a detailed bill using following cli command:
ibmcloud billing account-usage
ibm-cloud billing
Possible duplicate of stackoverflow.com/questions/52333121/…
– Vidyasagar Machupalli
Nov 20 '18 at 15:23
@VidyasagarMachupalli - That is a very old question, things have changed a lot since then.
– NoviceMe
Nov 20 '18 at 15:39
I recommend this tutorial to get an overview: console.bluemix.net/docs/tutorials/cloud-usage.html It does not provide a single command. Are you looking for an API or a command?
– data_henrik
Nov 20 '18 at 15:53
@data_henrik - preferably an api call so I can send a consolidated bill as an email.
– NoviceMe
Nov 20 '18 at 15:56
add a comment |
I need to get a consolidated bill based on organizations or resource groups. Something like:
org1 $100
org2 $200
rg1 $150
Is there a way I can get this in one api call? I can get a detailed bill using following cli command:
ibmcloud billing account-usage
ibm-cloud billing
I need to get a consolidated bill based on organizations or resource groups. Something like:
org1 $100
org2 $200
rg1 $150
Is there a way I can get this in one api call? I can get a detailed bill using following cli command:
ibmcloud billing account-usage
ibm-cloud billing
ibm-cloud billing
edited Dec 18 '18 at 20:39
Jim Kennedy
156
156
asked Nov 20 '18 at 14:00
NoviceMeNoviceMe
71383783
71383783
Possible duplicate of stackoverflow.com/questions/52333121/…
– Vidyasagar Machupalli
Nov 20 '18 at 15:23
@VidyasagarMachupalli - That is a very old question, things have changed a lot since then.
– NoviceMe
Nov 20 '18 at 15:39
I recommend this tutorial to get an overview: console.bluemix.net/docs/tutorials/cloud-usage.html It does not provide a single command. Are you looking for an API or a command?
– data_henrik
Nov 20 '18 at 15:53
@data_henrik - preferably an api call so I can send a consolidated bill as an email.
– NoviceMe
Nov 20 '18 at 15:56
add a comment |
Possible duplicate of stackoverflow.com/questions/52333121/…
– Vidyasagar Machupalli
Nov 20 '18 at 15:23
@VidyasagarMachupalli - That is a very old question, things have changed a lot since then.
– NoviceMe
Nov 20 '18 at 15:39
I recommend this tutorial to get an overview: console.bluemix.net/docs/tutorials/cloud-usage.html It does not provide a single command. Are you looking for an API or a command?
– data_henrik
Nov 20 '18 at 15:53
@data_henrik - preferably an api call so I can send a consolidated bill as an email.
– NoviceMe
Nov 20 '18 at 15:56
Possible duplicate of stackoverflow.com/questions/52333121/…
– Vidyasagar Machupalli
Nov 20 '18 at 15:23
Possible duplicate of stackoverflow.com/questions/52333121/…
– Vidyasagar Machupalli
Nov 20 '18 at 15:23
@VidyasagarMachupalli - That is a very old question, things have changed a lot since then.
– NoviceMe
Nov 20 '18 at 15:39
@VidyasagarMachupalli - That is a very old question, things have changed a lot since then.
– NoviceMe
Nov 20 '18 at 15:39
I recommend this tutorial to get an overview: console.bluemix.net/docs/tutorials/cloud-usage.html It does not provide a single command. Are you looking for an API or a command?
– data_henrik
Nov 20 '18 at 15:53
I recommend this tutorial to get an overview: console.bluemix.net/docs/tutorials/cloud-usage.html It does not provide a single command. Are you looking for an API or a command?
– data_henrik
Nov 20 '18 at 15:53
@data_henrik - preferably an api call so I can send a consolidated bill as an email.
– NoviceMe
Nov 20 '18 at 15:56
@data_henrik - preferably an api call so I can send a consolidated bill as an email.
– NoviceMe
Nov 20 '18 at 15:56
add a comment |
3 Answers
3
active
oldest
votes
There is no single API call which gives usage per org. But there is API call ibmcloud billing org-usage $org
which retrieves usage for a single ORG. You can write a small shell script to call the API in a loop over a list of org.
#!/bin/bash
ibmcloud login --apikey @ibmcloud_key
ibmcloud target -o ORGNAME1 -s SPACENAME
org_list=(ORGNAME1 ORGNAME2)
echo "Get usage for each org...."
for org in "$org_list[@]"
do
ibmcloud billing org-usage $org >> billing.txt
done
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
add a comment |
The answers by @VidyasagarMachupalli and @data_henrik are appropriate. While there is no single API call, the ibmcloud billing resource-instances-usage
provides the closest solution as it segments data based on org, space, and resource group.
You can use a spreadsheet (i.e. pivot table) to take the last step and sum the data for an entire org or resource group. The tutorial mentioned - this section - does exactly this approach using the IBM Cloud CLI, jq, and json2csv.
ibmcloud billing resource-instances-usage --output json | jq '. | {month,resource_name,resource_group_name,organization_name,space_name,metric: .usage.metric,cost : .usage.cost}' | json2csv -f month,resource_name,resource_group_name,organization_name,space_name,metric,cost -p
┌───────────────┬──────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────┬────────────────────────┬────────────────┬───────────────┐
│ "month" │ "resource_name" │ "resource_group_name" │ "organization_name" │ "space_name" │ "metric" │ "cost" │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DEVOPS_INSIGH │ │
│ "2018-11" │ "DevOps Insights" │ "default" │ "" │ "" │ TS_ITEMS" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "instance_hour │ │
│ "2018-11" │ "Kubernetes Service" │ "default" │ "" │ "" │ s" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DATA_POINTS_P │ │
│ "2018-11" │ "Monitoring" │ "" │ "van_org" │ "dev" │ ER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ "IBM Bluemix Platform Runtim │ │ │ │ "GB_HOURS_PER_ │ │
│ "2018-11" │ e" │ "" │ "van_org" │ "dev" │ MONTH" │ 0.00035 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "GB_HOURS_PER_ │ 3.51056366597 │
│ "2018-11" │ "IBM Bluemix Node.js" │ "" │ "van_org" │ "dev" │ MONTH" │ 2222 │
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
add a comment |
IBM Cloud offers APIs for usage metering and usage reports. The integrated API overview page in the IBM Cloud docs lists them under Platform Services.
I also recommend this IBM Cloud solution tutorial on reviewing cloud usage for an introduction. I just checked and it does not yet have the new APIs, but it's worth reading nonetheless.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53394677%2fis-there-a-way-to-get-consolidated-ibm-cloud-billing-in-one-api-call%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
There is no single API call which gives usage per org. But there is API call ibmcloud billing org-usage $org
which retrieves usage for a single ORG. You can write a small shell script to call the API in a loop over a list of org.
#!/bin/bash
ibmcloud login --apikey @ibmcloud_key
ibmcloud target -o ORGNAME1 -s SPACENAME
org_list=(ORGNAME1 ORGNAME2)
echo "Get usage for each org...."
for org in "$org_list[@]"
do
ibmcloud billing org-usage $org >> billing.txt
done
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
add a comment |
There is no single API call which gives usage per org. But there is API call ibmcloud billing org-usage $org
which retrieves usage for a single ORG. You can write a small shell script to call the API in a loop over a list of org.
#!/bin/bash
ibmcloud login --apikey @ibmcloud_key
ibmcloud target -o ORGNAME1 -s SPACENAME
org_list=(ORGNAME1 ORGNAME2)
echo "Get usage for each org...."
for org in "$org_list[@]"
do
ibmcloud billing org-usage $org >> billing.txt
done
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
add a comment |
There is no single API call which gives usage per org. But there is API call ibmcloud billing org-usage $org
which retrieves usage for a single ORG. You can write a small shell script to call the API in a loop over a list of org.
#!/bin/bash
ibmcloud login --apikey @ibmcloud_key
ibmcloud target -o ORGNAME1 -s SPACENAME
org_list=(ORGNAME1 ORGNAME2)
echo "Get usage for each org...."
for org in "$org_list[@]"
do
ibmcloud billing org-usage $org >> billing.txt
done
There is no single API call which gives usage per org. But there is API call ibmcloud billing org-usage $org
which retrieves usage for a single ORG. You can write a small shell script to call the API in a loop over a list of org.
#!/bin/bash
ibmcloud login --apikey @ibmcloud_key
ibmcloud target -o ORGNAME1 -s SPACENAME
org_list=(ORGNAME1 ORGNAME2)
echo "Get usage for each org...."
for org in "$org_list[@]"
do
ibmcloud billing org-usage $org >> billing.txt
done
answered Nov 20 '18 at 16:42
Manoj SinghManoj Singh
1,032316
1,032316
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
add a comment |
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
I am unable to call this script from a function.
– NoviceMe
Nov 21 '18 at 14:00
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
What programming language are you using to create your function? The above script is a bash script. You can refactor that into a function if you need to.
– Manoj Singh
Nov 21 '18 at 17:36
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
I am using python, but where will billing.txt be saved? When you run it as a function on bluemix?
– NoviceMe
Dec 13 '18 at 15:43
add a comment |
The answers by @VidyasagarMachupalli and @data_henrik are appropriate. While there is no single API call, the ibmcloud billing resource-instances-usage
provides the closest solution as it segments data based on org, space, and resource group.
You can use a spreadsheet (i.e. pivot table) to take the last step and sum the data for an entire org or resource group. The tutorial mentioned - this section - does exactly this approach using the IBM Cloud CLI, jq, and json2csv.
ibmcloud billing resource-instances-usage --output json | jq '. | {month,resource_name,resource_group_name,organization_name,space_name,metric: .usage.metric,cost : .usage.cost}' | json2csv -f month,resource_name,resource_group_name,organization_name,space_name,metric,cost -p
┌───────────────┬──────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────┬────────────────────────┬────────────────┬───────────────┐
│ "month" │ "resource_name" │ "resource_group_name" │ "organization_name" │ "space_name" │ "metric" │ "cost" │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DEVOPS_INSIGH │ │
│ "2018-11" │ "DevOps Insights" │ "default" │ "" │ "" │ TS_ITEMS" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "instance_hour │ │
│ "2018-11" │ "Kubernetes Service" │ "default" │ "" │ "" │ s" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DATA_POINTS_P │ │
│ "2018-11" │ "Monitoring" │ "" │ "van_org" │ "dev" │ ER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ "IBM Bluemix Platform Runtim │ │ │ │ "GB_HOURS_PER_ │ │
│ "2018-11" │ e" │ "" │ "van_org" │ "dev" │ MONTH" │ 0.00035 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "GB_HOURS_PER_ │ 3.51056366597 │
│ "2018-11" │ "IBM Bluemix Node.js" │ "" │ "van_org" │ "dev" │ MONTH" │ 2222 │
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
add a comment |
The answers by @VidyasagarMachupalli and @data_henrik are appropriate. While there is no single API call, the ibmcloud billing resource-instances-usage
provides the closest solution as it segments data based on org, space, and resource group.
You can use a spreadsheet (i.e. pivot table) to take the last step and sum the data for an entire org or resource group. The tutorial mentioned - this section - does exactly this approach using the IBM Cloud CLI, jq, and json2csv.
ibmcloud billing resource-instances-usage --output json | jq '. | {month,resource_name,resource_group_name,organization_name,space_name,metric: .usage.metric,cost : .usage.cost}' | json2csv -f month,resource_name,resource_group_name,organization_name,space_name,metric,cost -p
┌───────────────┬──────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────┬────────────────────────┬────────────────┬───────────────┐
│ "month" │ "resource_name" │ "resource_group_name" │ "organization_name" │ "space_name" │ "metric" │ "cost" │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DEVOPS_INSIGH │ │
│ "2018-11" │ "DevOps Insights" │ "default" │ "" │ "" │ TS_ITEMS" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "instance_hour │ │
│ "2018-11" │ "Kubernetes Service" │ "default" │ "" │ "" │ s" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DATA_POINTS_P │ │
│ "2018-11" │ "Monitoring" │ "" │ "van_org" │ "dev" │ ER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ "IBM Bluemix Platform Runtim │ │ │ │ "GB_HOURS_PER_ │ │
│ "2018-11" │ e" │ "" │ "van_org" │ "dev" │ MONTH" │ 0.00035 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "GB_HOURS_PER_ │ 3.51056366597 │
│ "2018-11" │ "IBM Bluemix Node.js" │ "" │ "van_org" │ "dev" │ MONTH" │ 2222 │
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
add a comment |
The answers by @VidyasagarMachupalli and @data_henrik are appropriate. While there is no single API call, the ibmcloud billing resource-instances-usage
provides the closest solution as it segments data based on org, space, and resource group.
You can use a spreadsheet (i.e. pivot table) to take the last step and sum the data for an entire org or resource group. The tutorial mentioned - this section - does exactly this approach using the IBM Cloud CLI, jq, and json2csv.
ibmcloud billing resource-instances-usage --output json | jq '. | {month,resource_name,resource_group_name,organization_name,space_name,metric: .usage.metric,cost : .usage.cost}' | json2csv -f month,resource_name,resource_group_name,organization_name,space_name,metric,cost -p
┌───────────────┬──────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────┬────────────────────────┬────────────────┬───────────────┐
│ "month" │ "resource_name" │ "resource_group_name" │ "organization_name" │ "space_name" │ "metric" │ "cost" │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DEVOPS_INSIGH │ │
│ "2018-11" │ "DevOps Insights" │ "default" │ "" │ "" │ TS_ITEMS" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "instance_hour │ │
│ "2018-11" │ "Kubernetes Service" │ "default" │ "" │ "" │ s" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DATA_POINTS_P │ │
│ "2018-11" │ "Monitoring" │ "" │ "van_org" │ "dev" │ ER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ "IBM Bluemix Platform Runtim │ │ │ │ "GB_HOURS_PER_ │ │
│ "2018-11" │ e" │ "" │ "van_org" │ "dev" │ MONTH" │ 0.00035 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "GB_HOURS_PER_ │ 3.51056366597 │
│ "2018-11" │ "IBM Bluemix Node.js" │ "" │ "van_org" │ "dev" │ MONTH" │ 2222 │
The answers by @VidyasagarMachupalli and @data_henrik are appropriate. While there is no single API call, the ibmcloud billing resource-instances-usage
provides the closest solution as it segments data based on org, space, and resource group.
You can use a spreadsheet (i.e. pivot table) to take the last step and sum the data for an entire org or resource group. The tutorial mentioned - this section - does exactly this approach using the IBM Cloud CLI, jq, and json2csv.
ibmcloud billing resource-instances-usage --output json | jq '. | {month,resource_name,resource_group_name,organization_name,space_name,metric: .usage.metric,cost : .usage.cost}' | json2csv -f month,resource_name,resource_group_name,organization_name,space_name,metric,cost -p
┌───────────────┬──────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────┬────────────────────────┬────────────────┬───────────────┐
│ "month" │ "resource_name" │ "resource_group_name" │ "organization_name" │ "space_name" │ "metric" │ "cost" │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "AUTHORIZED_US │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ ERS_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "JOB_EXECUTION │ │
│ "2018-11" │ "Continuous Delivery" │ "default" │ "" │ "" │ S_PER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DEVOPS_INSIGH │ │
│ "2018-11" │ "DevOps Insights" │ "default" │ "" │ "" │ TS_ITEMS" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "instance_hour │ │
│ "2018-11" │ "Kubernetes Service" │ "default" │ "" │ "" │ s" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "DATA_POINTS_P │ │
│ "2018-11" │ "Monitoring" │ "" │ "van_org" │ "dev" │ ER_MONTH" │ 0 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ "IBM Bluemix Platform Runtim │ │ │ │ "GB_HOURS_PER_ │ │
│ "2018-11" │ e" │ "" │ "van_org" │ "dev" │ MONTH" │ 0.00035 │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│ │ │ │ │ │ "GB_HOURS_PER_ │ 3.51056366597 │
│ "2018-11" │ "IBM Bluemix Node.js" │ "" │ "van_org" │ "dev" │ MONTH" │ 2222 │
edited Nov 20 '18 at 17:34
answered Nov 20 '18 at 17:09
Van StaubVan Staub
713
713
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
add a comment |
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
I tried this but this is not the solution I can use inside a function or lambda to run. Is there a better way of doing this?
– NoviceMe
Nov 20 '18 at 18:29
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
The CLI communicates with an API; you'd mimic the same approach in a Function. Set the IBMCLOUD_TRACE=true env var and run the command, you'll then see the RESTful call that the CLI is doing. The Cloud Usage sample application referenced from the tutorial uses Cloud Functions to retrieve billing data.
– Van Staub
Nov 21 '18 at 13:32
add a comment |
IBM Cloud offers APIs for usage metering and usage reports. The integrated API overview page in the IBM Cloud docs lists them under Platform Services.
I also recommend this IBM Cloud solution tutorial on reviewing cloud usage for an introduction. I just checked and it does not yet have the new APIs, but it's worth reading nonetheless.
add a comment |
IBM Cloud offers APIs for usage metering and usage reports. The integrated API overview page in the IBM Cloud docs lists them under Platform Services.
I also recommend this IBM Cloud solution tutorial on reviewing cloud usage for an introduction. I just checked and it does not yet have the new APIs, but it's worth reading nonetheless.
add a comment |
IBM Cloud offers APIs for usage metering and usage reports. The integrated API overview page in the IBM Cloud docs lists them under Platform Services.
I also recommend this IBM Cloud solution tutorial on reviewing cloud usage for an introduction. I just checked and it does not yet have the new APIs, but it's worth reading nonetheless.
IBM Cloud offers APIs for usage metering and usage reports. The integrated API overview page in the IBM Cloud docs lists them under Platform Services.
I also recommend this IBM Cloud solution tutorial on reviewing cloud usage for an introduction. I just checked and it does not yet have the new APIs, but it's worth reading nonetheless.
answered Nov 20 '18 at 16:16
data_henrikdata_henrik
9,29121031
9,29121031
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53394677%2fis-there-a-way-to-get-consolidated-ibm-cloud-billing-in-one-api-call%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of stackoverflow.com/questions/52333121/…
– Vidyasagar Machupalli
Nov 20 '18 at 15:23
@VidyasagarMachupalli - That is a very old question, things have changed a lot since then.
– NoviceMe
Nov 20 '18 at 15:39
I recommend this tutorial to get an overview: console.bluemix.net/docs/tutorials/cloud-usage.html It does not provide a single command. Are you looking for an API or a command?
– data_henrik
Nov 20 '18 at 15:53
@data_henrik - preferably an api call so I can send a consolidated bill as an email.
– NoviceMe
Nov 20 '18 at 15:56