Using tags in Azure is a great way to logically organise resources by categories. Combining tags with the Power BI Microsoft Azure Consumption Insights connector should offer a powerful way to analyse and gain insights into your Azure expenditure.
Unfortunately, the connector imports the tags as a single field containing the tagging JSON, which makes it difficult to work with the tags in a meaningful way. For example, if you have tags called System, Geography and Environment it would be great to be able to work with these in Power BI as an individual fields. Fortunately, this is possible, but not with Power BI in the browser.
Download Power BI Desktop and get data from the Microsoft Azure Consumption Insights (Beta).
Enter your EA enrollment number, which you can get from https://ea.azure.com/ . You’ll also need an API access key, which is available from https://ea.azure.com/ under reports -> download usage -> API access key.
Select UsageDetails, then right-click and select edit.
If you’ve only recently added tags order the data by date descending. This is because the Power BI editor loads 1000 rows initially and if you’ve only recently started using tags they’ll only be listed against recent records.
Find the Tags column, right-click choose Transform, followed by JSON.
Power BI will now parse the JSON and enable you to split out each tag into a separate column. Click on the arrows and the tag fields will be loaded.
Click ok to add the new tag fields to the data set, followed by close & apply.
You can now work with each tag individually.
In a secure sandbox environment withing Azure I encountered and issue whereby the Azure VM Agent status was reporting as not ready and the agent version as unknown.
Opening the VM Agent log in C:\WindowsAzure\Logs\WaAppAgent.log I saw the error:
[ERROR] GetVersions() failed with exception: System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at http://188.8.131.52/?comp=versions that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. —> System.Net.WebException: Unable to connect to the remote server —> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 184.108.40.206:80
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
— End of inner exception stack trace —
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
— End of inner exception stack trace —
Research showed that the IP address 220.127.116.11 is a virtual IP address used for Azure VM Agent communication amongst other things. See here for more detail.
In this case traffic was flowing through an Azure security appliance and a rule needed to be created to allow traffic to and from 18.104.22.168. Once this was done the VM Agent functioned correctly.
If you create a web site on Windows Azure using the Joomla! 2.5 template you may find that you’re unable to upload templates. This is because the Joomla! template tmp_path and log_path parameters point to unwritable locations.
To change the tmp_path and log_path parameters, open your site using the Microsoft WebMatrix toolkit, then open configuration.php.
Within configuration.php locate the two parameters.
Change the parameter values as below, substituting YourWebSiteName for the name of your web site.
public $tmp_path = ‘C:\\DWASFiles\\Sites\\YourWebSiteName\\VirtualDirectory0\\site\\wwwroot\\tmp’;
public $log_path = ‘C:\\DWASFiles\\Sites\\YourWebSiteName\\VirtualDirectory0\\site\\wwwroot\\var\\logs’;
Save your changes.