Categories


Recent Posts


Archives


OpenTelemetry’s NPM Packages

This entry is part 4 of 4 in the series Tracing Systems with Zipkin and OpenTracing. Earlier posts include What is a Zipkin Trace?, Instrumenting Traces with Zipkin, and Tracing NodeJS Services with Open Telemetry. This is the most recent post in the series. In our previous OpenTelemetry articles, we gave a broad “hello [...]

astorm

Tracing NodeJS Services with Open Telemetry

This entry is part 3 of 4 in the series Tracing Systems with Zipkin and OpenTracing. Earlier posts include What is a Zipkin Trace?, and Instrumenting Traces with Zipkin. Later posts include OpenTelemetry's NPM Packages. In the first two articles in this series we took a crash course in instrumenting a small three service system using [...]

astorm

Instrumenting Traces with Zipkin

This entry is part 2 of 4 in the series Tracing Systems with Zipkin and OpenTracing. Earlier posts include What is a Zipkin Trace?. Later posts include Tracing NodeJS Services with Open Telemetry, and OpenTelemetry's NPM Packages. Last time we ran a small, three service pre-instrumented system that reported spans into Zipkin. In this [...]

astorm

What is a Zipkin Trace?

This entry is part 1 of 4 in the series Tracing Systems with Zipkin and OpenTracing. Later posts include Instrumenting Traces with Zipkin, Tracing NodeJS Services with Open Telemetry, and OpenTelemetry's NPM Packages. In our last series we took a look at Prometheus, its metric data types, and how it compares to the OpenTelemetry project. [...]

astorm

How does Deno Use Rust

Reddit is not my natural enviornment, but I occasionally hover around its various programming communities. This is a personal archive of an answer to a question about the Deno, the new “run javascript on your own computer” project. I’m far from an expert in all the real details here, but I’ll give this a go. Deno [...]

astorm

Async/Await and Recursion

So here’s a “fun” side effect of async/await in NodeJS. I had a bug. It seemed like it might be run away recursion bug. NodeJS doesn’t let you set an explicit recursion depth limit, but it does limit the size of your call stack. So how could there be a recursion bug without Node throwing up errors and/or crashing [...]

astorm

Where does Deno Code Come From

This entry is part 1 of 2 in the series Exploring Deno. Later posts include Comparing a Deno and Node.js Hello World Program. Whenever I sit down with a new (either to me, or to the world) programming language, the first thing I end up doing is trying to understand where all the code I’ll use comes from. What’s available by [...]

astorm

@grpc/grpc-js Goes 1.0

A quick note to congratulate anyone working on the @grpc/grpc-js project for their 1.0 last month. There’s been a C++ native module of GRPC around for awhile now, but @grpc/grpc-js a pure TypeScript (that compiles to pretty clean javascript) implementation, and we’ve found That it’s mostly a drop in replacement for grpc [...]

astorm

What are OpenTelemetry Metrics and Exporters

This entry is part 3 of 3 in the series An Introduction to Prometheus and Metrics. Earlier posts include What is Prometheus?, and What are Prometheus Exporters?. This is the most recent post in the series. Last time we ended by musing that Prometheus, while an open source project, still creates a case of vendor lock-in for its users. [...]

astorm

What are Prometheus Exporters?

This entry is part 2 of 3 in the series An Introduction to Prometheus and Metrics. Earlier posts include What is Prometheus?. Later posts include What are OpenTelemetry Metrics and Exporters. In our first article, we covered four core Prometheus concepts and used those four concepts to instrument a simple service written in NodeJS. One [...]

astorm

What is Prometheus?

This entry is part 1 of 3 in the series An Introduction to Prometheus and Metrics. Later posts include What are Prometheus Exporters?, and What are OpenTelemetry Metrics and Exporters. One surprising thing about the software instrumentation world, a world that helps us see what our systems are doing, is how opaque the instrumentation [...]

astorm

TypeScript won’t Save us

A few weeks ago I started working with gRPC for the first time. These days gRPC stands for “general-purpose remote procedure call”, but I still think of it as “Google remote procedure call”, as it’s a project that came out of, and is primarily maintained, by Google engineers. It’s a system for building [...]

astorm

Don’t Make them Tell you Thrice

Here’s an API design pattern that drives me a little nuts. If you’re using the Apollo GraphQL client to make a data fetching query, your code looks like this. client.query({ query: gql`query { ... your query here ...}` } However, if you’re using the apollo client to make a graphql mutation query, your code looks like [...]

astorm

The End of 10-Digit ISBNs

A small post that’s a little off my normal beat — sometimes software feels like a never ending series of Y2K like paper cuts. ISBNs are cross-publisher serial numbers for books. If you’re publishing a book, and you want to tap into global supply chains (i.e. have stores be able to order and stock your book), you need to [...]

astorm
email hidden; JavaScript is required