Power BI chart selection examples for production software system telemetry

Power BI makes it really easy to import data, create reports with rich visuals, and then gain insights to make decisions. However one of the tricky things that I found when learning Power BI was that most of the example datasets were for sales and marketing data.

When should you use a bar chart? A donut chart? A funnel chart? Existing tutorials answer these questions fine– but what if you have telemetry or metrics for software projects?

In this post I share some Power BI chart and data model examples that are bit more relevant for software engineers. This makes it easier to build the best possible dashboards for your software or production systems telemetry.

Continue reading

How to add PowerShell linting to projects in Visual Studio Code

Linting tools provide a way for us to automatically analyze source code to find bugs and style problems. Adding these tools to your project will help enforce coding best practices and maintain them as the project grows. In this post we demonstrate how to configure linting for PowerShell code projects in the Visual Studio Code editor using the PSScriptAnalyzer toolset.

Continue reading

How to run PowerShell Core scripts from .NET Core applications

I wrote an MSDN blog post a few years back (here) that demonstrated how to run PowerShell scripts by hosting the PowerShell runtime inside a C# / .NET application. A few things have changed since that post; including the introduction of .NET Core and PowerShell Core, better async support, and a few new best practices.

In this article we will jump forward to take a look at runspace execution for PowerShell Core and .NET Core applications. Including topics like project setup, runspace usage examples, stream handling, shared app domain use cases, and some helpful troubleshooting tips.

Continue reading

Azure Application Insights series part 3: How to configure monitoring alerts

This is the third and final post in a series I’m writing on Azure’s Application Insights (AI) service. In the previous post we looked at how to create monitoring dashboards in Azure.

Here in this post we run through some examples for how to configure monitoring alerts with built-in Azure resource metrics and custom instrumented events and metrics.

Continue reading

Azure Application Insights series part 2: How to create application monitoring dashboards in Azure

This is the second post in a series I’m writing on Azure’s Application Insights (AI) service. In the previous post we looked at how to instrument our application code for monitoring.

Here in this post we will walk through how to create application monitoring dashboards directly in Azure using the Azure Dashboards feature and leveraging data from Application Insights and Azure resource metrics.

Continue reading

Azure Application Insights series part 1: How to instrument your application code for monitoring

This is the first post in a new series I’m writing on Azure’s Application Insights (AI) service. The goal of the series is to walk through some of the basics for monitoring your Azure hosted services with Application Insights. We will cover topics like instrumentation, monitoring dashboards, and paging alerts.

In this post we have a look at code instrumentation: What is it? What are SLIs? How do we use the Application Insights client libraries? What are some instrumentation best practices?

Continue reading

Tracking and classifying Azure DevOps work items in SRE toil budgets

In Google’s Site Reliability Engineering book, the chapter on toil (tedious, manual operational work) asserts that we should keep toil work amounts to only a small fraction of our total engineering hours. The reason for this is that too much toil work negatively impacts the engineering team.

In this post we will review some toil basics, talk about why toil tracking matters, and see how we can leverage Azure DevOps to track and classify our sprint work for enhanced toil budget tracking.

Continue reading