Observability with Grafana: Monitor, control, and visualize your Kubernetes and cloud platforms using the LGTM stack [1 ed.]
9781803248004
Implement the LGTM stack for cost-effective, faster, and secure delivery and management of applications to provide effec
131
52
14MB
English
Pages 356
Year 2023
Report DMCA / Copyright
DOWNLOAD EPUB FILE
Table of contents :
Observability with Grafana
Contributors
About the authors
About the reviewers
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Code in Action
Conventions used
Get in touch
Share Your Thoughts
Download a free PDF copy of this book
Part 1: Get Started with Grafana and Observability
1
Introducing Observability and the Grafana Stack
Observability in a nutshell
Case study – A ship passing through the Panama Canal
Telemetry types and technologies
Metrics
Logs
Distributed traces
Other telemetry types
Introducing the user personas of observers
Diego Developer
Ophelia Operator
Steven Service
Pelé Product
Masha Manager
Introducing the Grafana stack
The core Grafana stack
Grafana Enterprise plugins
Grafana incident response and management
Other Grafana tools
Alternatives to the Grafana stack
Data collection
Data storage, processing, and visualization
Deploying the Grafana stack
Summary
2
Instrumenting Applications and Infrastructure
Common log formats
Structured, semi-structured, and unstructured logging
Sample log formats
Exploring metric types and best practices
Metric types
Comparing metric types
Metric protocols
Best practices for implementing metrics
Tracing protocols and best practices
Spans and traces
Tracing protocols
Best practices for setting up distributed tracing
Using libraries to instrument efficiently
Popular libraries for different programming languages
Infrastructure data technologies
Common infrastructure components
Common standards for infrastructure components
Summary
3
Setting Up a Learning Environment with Demo Applications
Technical requirements
Introducing Grafana Cloud
Setting up an account
Exploring the Grafana Cloud Portal
Exploring the Grafana instance
Installing the prerequisite tools
Installing WSL2
Installing Homebrew
Installing container orchestration tools
Installing a single-node Kubernetes cluster
Installing Helm
Installing the OpenTelemetry Demo application
Setting up access credentials
Downloading the repository and adding credentials and endpoints
Installing the OpenTelemetry Collector
Installing the OpenTelemetry demo application
Exploring telemetry from the demo application
Logs in Loki
Metrics in Prometheus/Mimir
Traces in Tempo
Adding your own applications
Troubleshooting your OpenTelemetry Demo installation
Checking Grafana credentials
Reading logs from the OpenTelemetry Collector
Debugging logs from the OpenTelemetry Collector
Summary
Part 2: Implement Telemetry in Grafana
4
Looking at Logs with Grafana Loki
Technical requirements
Updating the OpenTelemetry demo application
Introducing Loki
Understanding LogQL
LogQL query builder
An overview of LogQL features
Log stream selector
Log pipeline
Exploring LogQL metric queries
Exploring Loki’s architecture
Tips, tricks, and best practices
Summary
5
Monitoring with Metrics Using Grafana Mimir and Prometheus
Technical requirements
Updating the OpenTelemetry demo application
Introducing PromQL
An overview of PromQL features
Writing PromQL
Exploring data collection and metric protocols
StatsD and DogStatsD
OTLP
Prometheus
SNMP
Understanding data storage architectures
Graphite architecture
Prometheus architecture
Mimir architecture
Using exemplars in Grafana
Summary
6
Tracing Technicalities with Grafana Tempo
Technical requirements
Updating the OpenTelemetry Demo application
Introducing Tempo and the TraceQL query language
Exploring the Tempo features
Exploring the Tempo Query language
Pivoting between data types
Exploring tracing protocols
What are the main tracing protocols?
Context propagation
Understanding the Tempo architecture
Summary
7
Interrogating Infrastructure with Kubernetes, AWS, GCP, and Azure
Technical requirements
Monitoring Kubernetes using Grafana
Kubernetes Attributes Processor
Kubeletstats Receiver
Filelog Receiver
Kubernetes Cluster Receiver
Kubernetes Object Receiver
Prometheus Receiver
Host Metrics Receiver
Visualizing AWS telemetry with Grafana Cloud
Amazon CloudWatch data source
Exploring AWS integration
Monitoring GCP using Grafana
Configuring the data source
Google Cloud Monitoring query editor
Google Cloud Monitoring dashboards
Monitoring Azure using Grafana
Configuring the data source
Using the Azure Monitor query editor
Using Azure Monitor dashboards
Best practices and approaches
Summary
Part 3: Grafana in Practice
8
Displaying Data with Dashboards
Technical requirements
Creating your first dashboard
Developing your dashboard further
Using visualizations in Grafana
Developing a dashboard purpose
Advanced dashboard techniques
Managing and organizing dashboards
Case study – an overall system view
Summary
9
Managing Incidents Using Alerts
Technical requirements
Being alerted versus being alarmed
Before an incident
During an incident
After an incident
Writing great alerts using SLIs and SLOs
Grafana Alerting
Alert rules
Contact points, notification policies, and silences
Groups and admin
Grafana OnCall
Alert groups
Inbound integrations
Templating
Escalation chains
Outbound integrations
Schedules
Grafana Incident
Summary
10
Automation with Infrastructure as Code
Technical requirements
Benefits of automating Grafana
Introducing the components of observability systems
Automating collection infrastructure with Helm or Ansible
Automating the installation of the OpenTelemetry Collector
Automating the installation of Grafana Agent
Getting to grips with the Grafana API
Exploring the Grafana Cloud API
Using Terraform and Ansible for Grafana Cloud
Exploring the Grafana API
Managing dashboards and alerts with Terraform or Ansible
Summary
11
Architecting an Observability Platform
Architecting your observability platform
Defining a data architecture
Establishing system architecture
Management and automation
Developing a proof of concept
Containerization and virtualization
Data production tools
Setting the right access levels
Sending telemetry to other consumers
Summary
Part 4: Advanced Applications and Best Practices of Grafana
12
Real User Monitoring with Grafana
Introducing RUM
Setting up Grafana Frontend Observability
Exploring Web Vitals
Pivoting from frontend to backend data
Enhancements and custom configurations
Summary
13
Application Performance with Grafana Pyroscope and k6
Using Pyroscope for continuous profiling
A brief overview of Pyroscope
Searching Pyroscope data
Continuous profiling client configuration
Understanding the Pyroscope architecture
Using k6 for load testing
A brief overview of k6
Writing a test using checks
Writing a test using thresholds
Adding scenarios to a test to run at scale
Test life cycle
Installing and running k6
Summary
14
Supporting DevOps Processes with Observability
Introducing the DevOps life cycle
Using Grafana for fast feedback during the development life cycle
Code
Test
Release
Deploy
Operate
Monitor
Plan
Using Grafana to monitor infrastructure and platforms
Observability platforms
CI platforms
CD platforms
Resource platforms
Security platforms
Summary
15
Troubleshooting, Implementing Best Practices, and More with Grafana
Best practices and troubleshooting for data collection
Preparing for data collection
Data collection decisions
Debugging collector
Best practices and troubleshooting for the Grafana stack
Preparing the Grafana stack
Grafana stack decisions
Debugging Grafana
Avoiding pitfalls of observability
Future trends in application monitoring
Summary
Index
Why subscribe?
Other Books You May Enjoy
Packt is searching for authors like you
Share Your Thoughts
Download a free PDF copy of this book