GithubHelp home page GithubHelp logo

keesschollaart81 / azurecostinsights.marketplace Goto Github PK

View Code? Open in Web Editor NEW
25.0 25.0 8.0 6.53 MB

Azure Cost Insights - A widget for Azure DevOps (Maintenance repo)

Home Page: https://marketplace.visualstudio.com/items?itemName=keesschollaart.AzureCostInsights

azurecostinsights.marketplace's People

Contributors

keesschollaart81 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azurecostinsights.marketplace's Issues

Incorrect task id in YAML example

Hi.
I tried your example from here and found small typo error.

Pusblish task id should be:
- task: keesschollaart.AzureCostInsights.AzureCostInsightsWidget.PublishTask.PublishCostData@1

In example is incorrect id:
- task: keesschollaart.AzureCostInsights-Dev.AzureCostInsightsWidget.PublishTask.PublishCostData@1

Regards
Libor

Alter colors of data sets

It would be nice to be able to alter the colors of the different data series - We have two data sets that are almost indistinquiable from each other, and we see no way of affecting this..
image

More details about this extension

I have some questions related to this Azure DevOps extension:

  • What costs does the pipeline pull from Azure Usage API?
    [a] All our Azure costs (meaning all azure costs that one can see in the Azure Entreprise Agreement portal)?
    [b] All Azure costs but only those related to the subscription we specify while configuring the extension?
    [c] Only the costs of the consumption related to the specific "Azure DevOps Organization" where we install the extension.

How is the authentication done? Is the extension authenticating to the Azure API as the user running the pipeline? What role does the user need (lowest role I mean), and to which "scope" in Azure (role and scope as in Azure RBAC role and scope)?.

Thanks in advance

Name the widgets in the license combo

Currently the widgets are named with a unique number. When a widget is removed from a dashboard it does not automatically become available. Users have to take this slot. With the current implementation it's very hard to find out which slot to overtake.

The idea is to use the title of the widget, maybe in combination with project / team-name to make the widgets more easy to identify.

Cost reported is 200% of that in the Azure Portal

Hi,

I installed the extension in Azure DevOps and got it running. However, the cost reported by the widget is exactly 200% of the cost according to the Azure Portal.

How can I resolve this?

Thanks, Marcel

Ability to narrow down the downloaded dataset

For security and performance reasons, it would be nice to be able to filter already in the download stage. This enables organisations/ops to limit the amount of data teams can see/use in their dashboard.

No items in Build Definition when adding Widget

We are using Azure DevOps.
I have successfully added and executed:
Repo with YAML file for build pipeline.
Build pipeline with Download Cost and Publish Cost tasks.

But when trying to add a Widget in a Dashboard in Azure DevOps, there are no items in Build Definition.
The comment indicates that it should be the output of the build pipeline.

Do I miss something?

Group by week / month

Next to getting insights by day, a view grouped by week and/or month.

This is especially relevant when viewing longer period (3 mo+)

Download Cost Data not Working

Hi Kees,

Getting the below error while downloading the cost data from azure portal.
Can you please help here?

Downloading costs using Usage API
Unhandled exception during Download Task { Error: Error SyntaxError: Unexpected token  in JSON at position 0 occurred in deserializing the responseBody - {"OfferTerms":[],"Meters":[{"EffectiveDate":"2019-10-28T00:00:00Z","IncludedQu

Not seeing a legend in dashboard widget

Hi,
Followed the wiki and getting started. Job completes successfully and I get data. However I have no legend in the dashboard widget no matter which selection, left, right, top, bottom I select. I have data displayed, but do not have legend. I have tried group by Resource Group, Resource Type, Subscription and Tag. With Resource Type selected, I see different colored bars on top of each other in the bar graph, however no legend to tell me what the colors represent and no popup on hover to tell me either. I looked all through Wiki and there are a lot of //Todos in each section, so not helpful.

One thing of note: I have not incurred any expenses as of yet because we are at the beginning phase of using Azure. So all my costs are $0.00, however I have configured a Resource Group which contains: Storage Account, Key Vault, NSG, NetworkWatcher, Virtual Network and Log Analytics.

Any help you can give me with this to see what resource is which color, I would appreciate.

Split filtering and grouping

Can you split the filtering and grouping on the Cost Widget.

Then you can filter on a cost tag and show the graph based on resources / resource groups. This will allow for monitoring on resources and limiting per cost center tag.

Trial mode

Customers should be able to try out the basic/pro/enterprise plans for 1 month as a trial

Support for US Gov Subscriptions

Error: Get Token request returned http error: 400 and server response: {"error":"invalid_request","error_description":"AADSTS900382: Confidential Client is not supported in Cross Cloud request.\r\nTrace ID: c9ed2563-4de4-4eb2-a19f-77d6d977cb00\r\nCorrelation ID: fe8f5f61-c693-4eb9-9b85-3af720689ea2\r\nTimestamp: 2020-11-13 16:59:24Z","error_codes":[900382],"timestamp":"2020-11-13 16:59:24Z","trace_id":"c9ed2563-4de4-4eb2-a19f-77d6d977cb00","correlation_id":"fe8f5f61-c693-4eb9-9b85-3af720689ea2"}

It's pretty easy fix, we just need to be able to select Azure Authority Host so it uses .US instead of .Com
https://blog.jongallant.com/2020/02/azure-identity-other-clouds/

Filtering syntax?

What is the syntax for the filtering? :)
Specifically I'm trying to filter to series that match any of two specific string literals, but can't quite seem to find the right way to do it..?

Support more Offer Types

Currently tested: EA, Pay as you Go, MSDN, Microsoft Internal
Tested & not supported: CSP

Not tested: Free trial, [retired offers], ...?

I need people to help me test this with these kind of Susbcriptions.

Display only one RG on hover in Bar view (stacked)

We have around 20 RG's showing in the Azure Cost Bar (stacked) view. When I hover over one day I see a summary of the entire day. But I would like to see only the RG that I'm hovering over. A configuration boolean to be able to do this is also possible.

Gr Martin

Azure DevOps Resource is missing in the cost reporting

We operate Azure DevOps in a Subscription. We want cost reporting but the plugin ignores the azure devops service names & types. Please implement these as well, thank you.

Here the resource types, accumulate costs/d of app 70€
image

Here you see the Subscription. (The spike was when I deployed actual computing resources to test the plugin if it works)
image

So it seems, the Azure DevOps Resource Type is not recognized. Please consider implementing it as well. Thanks

Client ID must be a non empty string

I'm using managed identity authentication in the Azure Resource Manager service connection and when I run the build, I get an error saying that the client ID can not be empty. I don't see a field to enter the client ID. Should there be a variable or field to enter this data?

Exclude all except category in the chart?

I know you can exclude a category by selecting it on it in the Y-axis, but how about the ability to ONLY show that category, and deselect all others, perhaps by control + left-clicking?

Download Cost data pipeline failing with no error

I've made an empty repository, initialized it and I've build a pipeline without YML and added 2 tasks predefined: Download Cost data and Publish Cost data.

I have configured the download cost data as per my subscription using:

locale: en-US
currency: GBP
regio info: GB
OfferID: MS-AZR-0003P (pay as you go)

But the whole task fails without any error:


unhandled exception during Download Task { Error: ""
at o.pipeline.e (D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:245:1126571)
at s (D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:245:110551)
at s (D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:127:27863)
at D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:127:29103
at o (D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:161:7037)
at D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>5\1.0.30\index.js:127:26784
at B.t.headersOnly.t.streamedResponse.t.body.function.t.body.pipe.a [as _callback] (D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:1:299338)
at B.t._callback.t.callback.t.callback [as callback] (D:\a\_tasks\DownloadCostData_<identifying_info_Ithink>\1.0.30\index.js:221:5503)
at emitTwo (events.js:106:13)
at B.emit (events.js:191:7)
statusCode: 302,

domain must be a non empty string

Hi! When running the download task with an MSDN Abo Subscription where we get 150 euro every month the task fails with the message domain must be a non empty string.
The offerid is MS-AZR-0063P and the error occurs with usage and consumption api.
In contrast the Visual Studio Enterprise subscription works without any flaws.

Is there anything I can help you with except the log?
Thanks, B.

2020-08-12T09:07:33.7726070Z ##[section]Starting: Download cost data: xxxx
2020-08-12T09:07:33.7739355Z ==============================================================================
2020-08-12T09:07:33.7739748Z Task         : Download Cost Data
2020-08-12T09:07:33.7740699Z Description  : Fetch your Azure Cost data and prepare it for use in the widget
2020-08-12T09:07:33.7741080Z Version      : 1.0.30
2020-08-12T09:07:33.7741359Z Author       : Kees Schollaart
2020-08-12T09:07:33.7741823Z Help         : [More Information](https://github.com/keesschollaart81/CaseOnline.AzureCostInsights)
2020-08-12T09:07:33.7742339Z ==============================================================================
2020-08-12T09:07:34.3732619Z Logging in using ApplicationTokenCredentials, authScheme is 'ServicePrincipal'
2020-08-12T09:07:34.3751948Z Unhandled exception during Download Task Error: domain must be a non empty string.
2020-08-12T09:07:34.3753021Z     at new <anonymous> (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:3:247358)
2020-08-12T09:07:34.3754375Z     at u.getCredentials (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:129:79751)
2020-08-12T09:07:34.3755386Z     at u.<anonymous> (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:129:78154)
2020-08-12T09:07:34.3755799Z     at next (native)
2020-08-12T09:07:34.3756589Z     at /home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:129:77818
2020-08-12T09:07:34.3757503Z     at n (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:129:77592)
2020-08-12T09:07:34.3758683Z     at u.run (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:129:77954)
2020-08-12T09:07:34.3759710Z     at Object.defineProperty.value (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:129:80040)
2020-08-12T09:07:34.3761153Z     at r (/home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:1:400)
2020-08-12T09:07:34.3761972Z     at /home/vsts/work/_tasks/DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15/1.0.30/index.js:1:1199
2020-08-12T09:07:34.3843702Z ##[error]Error: domain must be a non empty string.
2020-08-12T09:07:34.7432198Z ##[section]Finishing: Download cost data: xxxx

Support dark theme

Dark theme not supported. Enable the widget for dark backgrounds etc.

A YAML Build Pipeline cannot be configured in the Widget

I created a YAML Build Pipeline that successfully completed.

I then added the Widget and the configuration switched to "Advanced" and asked for a configured build, without detecting the YAML Build.

The build selection drop-down displays a blank line and does not allow to select the YAML Build Pipeline.

I then created a "Classic" Build Pipeline, and the Widget then automatically detected it and the Widget displayed correctly.

I would expect the same behaviour with the YAML Build, or at least support the ability to select/specify it manually.

Feature request: Aggreate costs on week/month

Hi, Nice extension.

I would love to see a configurating setting where I determine the aggregation of the x-axis. or example costs per week or month instead of the default per day

Offline mode

No external dependency at all. No telemetry and no license check. Requested by bank/government/bunker-like scenario's

Demo data / nicer onboarding experience

To make the onboarding experience better and to be able to be part of the (ADO) Demo Generator it would be nice to show some demo when the user did not yet set a configuration.

Download Cost data pipeline failing with no error

I've made an empty repository, initialized it and I've build a pipeline without YML and added 2 tasks predefined: Download Cost data and Publish Cost data.

I have configured the download cost data as per my subscription using:

**

Which Azure API to use: Usage
locale: en-US
currency: USD
regio info: US
OfferID: MS-AZR-0003P

**

But the whole task fails without any error:

##[debug]offerType=MS-AZR-0003P
##[debug]currency=USD
##[debug]locale=en-US
##[debug]regioInfo=US
##[debug]DaysToDownload=60
Downloading costs using Usage API
Unhandled exception during Download Task { Error: ""
at o.pipeline.e (D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:245:1126571)
at s (D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:245:110551)
at s (D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:127:27863)
at D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:127:29103
at o (D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:161:7037)
at D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:127:26784
at B.t.headersOnly.t.streamedResponse.t.body.function.t.body.pipe.a [as _callback] (D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:1:299338)
at B.t._callback.t.callback.t.callback [as callback] (D:\a_tasks\DownloadCostData_adff96fa-a978-4c69-8fb4-08fda81b3c15\1.0.30\index.js:221:5503)
at emitTwo (events.js:106:13)
at B.emit (events.js:191:7)
statusCode: 302,

Can you help me please

Thanks

Pipeline builds but no option in the widget to select

not sure what is happening, but i have built the pipeline using the YAML file. Pipeline runs and i see the artifacts that have been produced. When adding the widget to the dashboard there is no option in the build definition drop down. any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.