While Go provides a testing package and a go test command, the former only offers basic testing capabilities. The package also has some drawbacks, such as missing assertions and increasing repetition with large-scale tests. As a result, several Go testing frameworks have been created to augment it. Go testing frameworks consist of tools and resources for creating and designing tests. Some of these frameworks incorporate the testing package and go test command, while others take a different approach.
We've gone through many iterations of ways to build, deploy and distribute applications written in Go at Cloud 66. Unlike Rails, Go applications can be web applications, daemons or CLIs and therefore have different requirements. I'll share some of what we've learned with you in this post.
At incident.io, we're acutely aware that we handle incredibly sensitive data on behalf of our customers. Moving fast and breaking things is all well and good, but keeping our customer data safe isn't something we can compromise on. We run incident.io as a multi-tenant application, which means we have a single database (and a single application).
We recently announced the release of our RemoteWrite SDK to support custom metrics from applications using several different languages – The first SDKs allow shipping of metrics from Golang (Go), Python, Java, Node.js, and.NET. This tutorial will cover the Golang SDK. The SDKs cover not just Logz.io, but can be used by any platform that supports the Prometheus remote write endpoint.
Every developer knows there are some utilities that are completely indispensable from their workflows. The programmer’s toolbelt, if you will. These toolbelts are usually different from person to person, but if there is one tool that everyone should use or at least know how to use, it is tcpdump. If you are unfamiliar, tcpdump is a tool that allows you to dump and inspect live network traffic being observed on a network interface.
Serverless applications streamline development by allowing you to focus on writing and deploying code rather than managing and provisioning infrastructure. To help you monitor the performance of your serverless applications, last year we released distributed tracing for AWS Lambda to provide comprehensive visibility across your serverless applications.
I’ve recently started working on a new project to build a Discord bot in Go, mostly as a way to learn more Go but also so I can use it to manage various things in Azure and potentially elsewhere. I figured it’d be useful to document some of this project to give some insights as to what I’ve done and why. Next up is the bot itself and how I integrated it into Honeycomb to get some visibility on how different commands are running.