With Observability, we gain insights into complex systems by monitoring
their states and behaviors.
Introduction
What is Observability?
Slide 6
Slide 6 text
Addressing Observability means we must collect, store, and analyze
data from different sources (e.g., individual apps, databases, caches,
infrastructure, …)
Introduction
What is Observability?
Slide 7
Slide 7 text
With Observability we can identify problems and potential defects
before they happen, because we look at data over a period of time,
which allows us to spot trends
Introduction
What is Observability?
Slide 8
Slide 8 text
• Logs
• Textual records of discrete events or actions within a system
• Provides a chronological record that aids in root cause analysis and debugging
• Metrics
• Point in time measure of different sources
• Enables monitoring and alerting based on predefined thresholds or anomalies
• Traces
• Collection of spans that outline a program’s flow and data progression
• Enables end-to-end tracing and troubleshooting of distributed systems
Introduction
Observability data types
• OpenTelemetry (OTel) is an open-source observability framework
• OTel empowers devs with generating, collecting, and exporting telemetry data from
distributed systems.
• OTel provides a standardized set of APIs, libraries, and instrumentation tools that
we can use to instrument our apps
• OTel supports many programming languages and integrates with various
observability systems
OpenTelemetry
https://opentelemetry.io/
Instrumenting .NET Apps
• Let’s instrument a regular .NET Web App
Demo
Slide 13
Slide 13 text
• Add Instrumentation packages to collect more insights
• Exporter packages are used to send / expose data to integrate with well-known,
battle-tested observability solutions (Jaeger, Zipkin, Prometheus, Elastic, ….)
• Individual metrics and spans are captured using regular types from .NET BCL
Instrumenting .NET Apps
Slide 14
Slide 14 text
Instrumenting .NET Apps
• Take our instrumentation to the next level
Demo
• Observability is mission-critical to
• Maintain the reliability and performance of your app
• Visualize the health of your app
• Gain insights about how users use your app
• Collect data and generate KPIs and group them into meaningful dashboards
• Observability is more than just using ILogger
• Do not underrate the importance of custom metrics
Conclusion
Slide 17
Slide 17 text
• OpenTelemetry is the de-facto standard
• Both manual and automatic instrumentation are super helpful to get insights of the entire
application
• Look for dedicated Instrumentation NuGet packages to gain more insights e.g,
• OpenTelemetry.Instrumentation.SqlClient
• OpenTelemetry.Instrumentation.GrpcNetClient
• OpenTelemetry.Instrumentation.StackExchangeRedis
• OpenTelemetry.Instrumentation.EntityFrameworkCore
Conclusion