Monitor Replication with DataDog and DogStatsd

Although DataDog comes with a healthy selection of integrations, there is always going to be something custom that you want to monitor. This is why DogStatsd has been made available. DogStatsd is a small server that aggregates your custom app metrics. Let’s look at monitoring SQL Server Replication using DogStatsd and C#. DogStatsd runs onContinue reading “Monitor Replication with DataDog and DogStatsd”

Reconfigure Octopus Deploy on a Cloned VM

If you clone a VM that has an existing Octopus Deploy tentacle running, you’ll find that you’ll have a problem with a thumbprint clash. All you need to do is generate a new thumprint using tentacle.exe. You can do this using a command window, or PowerShell… cd “c:\Program Files\Octopus Deploy\Tentacle” .\tentacle.exe new-certificate This command willContinue reading “Reconfigure Octopus Deploy on a Cloned VM”

Octopus Deploy: Deployments are Code

In the professional software development community, we use a disciplined approach to releasing our software. This is why many of us use tools such as Octopus Deploy to manage releases and deployments. Because this post is specifically about Octopus Deploy, I will assume that you understand why a code change should flow through a continuousContinue reading “Octopus Deploy: Deployments are Code”

Pass Octopus Deploy Variables to DacPac Deployment via PowerShell

This is the process for sending a variable from Octopus Deploy, all the way down to a SQL script that is hidden inside a DacPac, which is being called from PowerShell, which is being executed by Octopus Deploy. I have covered the end-to-end process of how to package and deploy your Visual Studio database projectContinue reading “Pass Octopus Deploy Variables to DacPac Deployment via PowerShell”

Octopus Deploy Package Upload Order Matters

If you have a deployment in Octopus Deploy that contains multiple packages, and the deployment occurs automatically when one of those packages is updated; then the order you upload the packages matters. For example, if you have packages A, B, and C – and you upload them in that order: If you trigger based onContinue reading “Octopus Deploy Package Upload Order Matters”

Mind First, Language Second

I don’t know if other industries experience this, but in software development it appears to be getting increasingly common. Pick a word or phrase, perform an in-depth critique of the word explaining why it shouldn’t be used, and attempt to coin a new phrase (over which you can be the creater and arbiter of allContinue reading “Mind First, Language Second”

TypeSpec Compared To SpecFlow

Updated: It is no longer mandatory to enclose parameters with quotes – which makes things even more similar between C#/SpecFlow and TypeScript/TypeSpec. On with the original article… Updated: TypeScript’s decorator feature makes things even more similar! This isn’t a “framework a” vs “framework b” post. When performing BDD, if you are using C#, you’ll beContinue reading “TypeSpec Compared To SpecFlow”

Check and Warm Up a Website with Octopus Deploy and PowerShell

There are two reasons you might want to add this step to your Octopus Deploy project. The first is to perform a basic check that your newly deployed website or API is working and the second is to warm it up (although there are built-in IIS utilities for this too). I have defined a variableContinue reading “Check and Warm Up a Website with Octopus Deploy and PowerShell”

Getting TAP Output From TypeSpec

If you want to get your TypeSpec test output in TAP (Test Anything Protocol) format, there is a built-in test reporter that will do this for you. Just pass in the TapReporter to the auto runner: import {AutoRunner, TapReporter} from ‘./Scripts/TypeSpec/TypeSpec’; AutoRunner.testReporter = new TapReporter(); You’ll now get TAP compliant output that can easily beContinue reading “Getting TAP Output From TypeSpec”