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

How to setup the Azure AD implicit grant flow with React, ASP.NET Core, and RBAC roles

The OAuth 2.0 implicit grant flow is great way to handle authentication between a client JavaScript single page web app (SPA) and a web API. For example: a React or Angular web app that needs to authenticate users and then have those users call an authorized ASP.NET Core Web API.

Azure AD and the Microsoft identity platform have well established patterns and support for this workflow. In this blog post I will break down an end-to-end example that includes enabling this flow for AAD users with the following technologies: an Azure AD App configured with role-based access control (RBAC) claims, client side code leveraging React and ADAL.js, and server side code leveraging ASP.NET Core.

Continue reading

Logging Azure Application Insights telemetry data from PowerShell

Application Insights (AI) is the application performance management (APM) and logging platform for Microsoft Azure. They provide a client instrumentation library for several popular platforms/languages– but there isn’t any official module for PowerShell. In this post I share some new functions that demonstrate how to log telemetry data to AI from PowerShell.

Continue reading

How to troubleshoot Azure Resource Manager (ARM) template validation errors

Deploying Azure Resource Manager (ARM) templates with the Azure PowerShell command New-AzureRmResourceGroupDeployment can fail for a variety of reasons. One of the more confusing situations can occur when handling template validation errors (Code=InvalidTemplateDeployment). This is because sometimes additional context is missing from the Exception and you have to lookup more information into order to troubleshoot the issue. In this post we will take a closer look at this particular error and how to resolve it.

Continue reading

Book Review: Cloud Architecture Patterns: Using Microsoft Azure

Building scalable systems for the cloud involves leveraging unique design patterns specific to cloud services. In Bill Wilder’s book, Cloud Architecture Patterns: Using Microsoft Azure, he walks through these patterns in detail with practical examples for Microsoft Azure. Although this book is now several years old, most of the patterns still hold up today.

Continue reading

Working with arrays of objects and multiple resource instances in Azure ARM templates

The ‘copy’ property is an Azure ARM template feature that allows you to iterate (for each) loop over a resource to create multiple copies of it. You can combine it with an ‘array of objects’ custom parameter to easily duplicate resources with your supplied values. However there are a couple of snags you might run into so I figured it’s worth a write up with an example.

Continue reading