scryops
menu
01
Guide 8 min read

OpenTelemetry: What It Is and How It Fits Together

OpenTelemetry is a single instrumentation layer that produces traces, metrics, and logs in a vendor-neutral format. This guide explains what each signal is for, how the SDK and Collector relate, and where to go next.
02
Guide 11 min read

Context Propagation: How Distributed Traces Stay Connected Across Services

A distributed trace is only as complete as its weakest propagation link. One hop that drops the context and the trace splits in two. W3C Trace Context and Baggage, the propagator settings that matter, and the places context gets lost — between services and inside them — in .NET, Java, Go, Python and Node.
03
How-to 8 min read

How to Instrument a .NET Service with OpenTelemetry

Add OpenTelemetry to an ASP.NET Core service: traces, metrics and logs in one setup block, manual spans and metrics for business logic, Serilog, and the zero-code agent for services you can't change. All verified against a local Collector.
04
How-to 7 min read

How to Instrument a Java Spring Boot Service with OpenTelemetry

Instrument a Spring Boot service with the OpenTelemetry Java agent or the Spring Boot starter: traces, metrics and logs with no code, then your own spans and metrics, the Micrometer bridge and log correlation. All verified against a local Collector.
05
How-to 8 min read

How to Wire Trace IDs Into Your Logs

Logs and traces live in separate worlds until you connect them. Put the trace ID on every log line in .NET, Java, Go or Python, check where each runtime actually writes it, and make the field name a contract your backend can use.
06
Q&A 2 min read

What's the real difference between profiling and tracing?

Tracing tells you which path a request took and how long each hop took. Profiling tells you what your CPU was actually doing during those hops. They're complementary — use both.
07
How-to 9 min read

How to Configure OTel Collector Tail Sampling

Move from flat probabilistic sampling to tail-based sampling in the OTel Collector. Keep every error and slow trace, cut health-check noise to 1%, and check that the Collector is doing what you think.
08
Article 7 min read

Your Sampling Strategy Is Lying to You

A flat 5% sampling rate sounds like a sensible trade between cost and coverage. It isn't. A random slice of your traffic is mostly the requests you'll never look at, and it throws away the rare ones you need at the same rate.
09
Article 6 min read

The dashboard was green, but the request was broken.

Metrics tell you how the crowd is doing. Logs tell you what one service saw. A trace tells you what one request went through, and at 2 a.m. that is usually the question you are asking.
10
Article 5 min read

The Evolution of System Understanding

From grepping one log file to querying wide, trace-linked events: how the questions we can ask a running system changed when monoliths split apart, and why OpenTelemetry had to exist.