Whenever you are shipping any service, make it highly observable ⚡

Arpit Bhayani

Arpit Bhayani

Mar 06, 2024 • 2 min read


Whenever you are shipping any service, make it highly observable ⚡

Observability is crucial whenever we are building and shipping; because what gets measured gets improved. Telemetry plays an important role in

  • knowing performance bottlenecks across layers of code
  • tracking CPU and memory utilization of underlying hardware
  • error tracking with stack traces with relevant context data
  • distributed tracing across microservices

This transparency is important to build stable and efficient services. Stability is attained because now we know exactly what happened, when, how, and why. Services become efficient because given that we are continuously measuring, we could know the performance bottleneck in the flow.

I spent the afternoon today setting up telemetry in my Go monolith and nothing beats the feeling of knowing exactly what’s happening in each function and the time taken by it.

If this is new to you, then check out OpenTelemetry which is an open-source standard for capturing and exporting metrics, traces, and logs; and almost all popular tools that you can think of support this spec making it easier for you to integrate with any of them.

Remember, what gets measured, gets improved.

ps: adding telemetry is slightly inconvenient in Go as compared to Python given how we can patch Python functions easily. But I would still prefer Go :)

⚡ I keep writing and sharing my practical experience and learnings every day, so if you resonate then follow along. I keep it no fluff.

youtube.com/c/ArpitBhayani

Arpit Bhayani

Principal Engineer II at Razorpay - building Agent Studio, Ex-staff engg at GCP Memorystore & Dataproc, Creator of DiceDB, ex-Amazon Fast Data, ex-Director of Engg. SRE and Data Engineering at Unacademy. I spark engineering curiosity through my no-fluff engineering videos on YouTube and my courses