Monitoring with Graphite

Book description

Graphite has become one of the most powerful monitoring tools available today, due to its ease of use, rapid graph prototyping abilities, and a friendly rendering API. With this practical guide, system administrators and engineers will learn how to use this open source tool to track operational data you need to monitor your systems, as well as application-level metrics for profiling your services.

Author Jason Dixon, member of the Graphite project, provides a thorough introduction of Graphite from the basics to the skills and tools you need for troubleshooting and scaling out its software components. If you want to learn more about monitoring systems, services, or applications, this is the book you need.

  • Get an introduction to monitoring, including important concepts and terminology
  • Examine the features and functionality of key Graphite components, including Carbon and Whisper
  • Learn the typical user workflow necessary to create a basic line chart
  • Build complex charts with chained functions and multiple axes that interact directly with the rendering API
  • Understand how to use the native Graphite dashboard, as well as the more popular third-party dashboards
  • Master the art of scaling and troubleshooting high-performance or highly available Graphite clusters

Publisher resources

View/Submit Errata

Table of contents

  1. Preface
    1. Who Should Read This Book
    2. Why I Wrote This Book
    3. A Word on Monitoring Today
    4. Navigating This Book
    5. Conventions Used in This Book
    6. O’Reilly Safari
    7. How to Contact Us
    8. Acknowledgments
  2. 1. What Is Graphite?
    1. What Is Time-Series Data?
    2. Time-Series Databases
      1. Storage Considerations
      2. Prioritizing Workloads
    3. What Is the History of Graphite?
    4. What Makes Graphite Unique?
      1. Simple Metrics Format
      2. Graphing API
      3. Rapid Prototyping
      4. Rich Statistical Library
      5. Chained Functions
    5. Case Studies: Who Uses Graphite in Production?
      1. Booking.com
      2. GitHub
      3. Etsy
      4. Electronic Arts
    6. Why Should I Use Graphite?
  3. 2. Monitoring Conventions
    1. Three Tenets of Monitoring
      1. Fault Detection
      2. Alerting
      3. Capacity Planning
    2. Rethinking the Poll/Pull Model
      1. Pull Model
      2. Push Model
    3. Where Does Graphite Fit into the Picture?
    4. Composable Monitoring Systems
      1. Telemetry
      2. Metrics Router
      3. Aggregation
      4. State Engine
      5. Notification Routers
      6. Storage Engine
      7. Visualization
    5. Conclusion
  4. 3. Graphite Components: The Moving Parts
    1. Carbon
      1. carbon-cache
      2. carbon-relay
      3. carbon-aggregator
      4. Filtering Metrics
      5. Internal Statistics
      6. Network Security Considerations
    2. Whisper
      1. How Do Whisper Files Get Created?
      2. Retention Policies and Archives
      3. The Laws of Whisper Archives
      4. Calculating Whisper File Sizes
      5. Deconstructing a Whisper File
      6. Which Archive Handles My Query?
      7. Aggregation Methods
      8. xFilesFactor
      9. Planning Your Namespaces
      10. Performance Considerations
    3. Graphite-Web
      1. Django Framework
      2. Web Server
      3. Database
      4. Memcached
      5. Events
      6. Storage Backends
    4. Putting It All Together
      1. Basic Setup
      2. Vertical Scaling
      3. Horizontal Scaling
      4. Multisite Replication
    5. A Final Thought
  5. 4. Building Your First Graphite Server
    1. Quick Start with Synthesize
      1. Where Does Graphite Store All My Files?
      2. Are Packages Available for My Distro?
      3. What Installation Methods Are Available?
      4. Should I Use Virtualenv?
      5. Using sudo Effectively
      6. Dependencies
      7. Installing from Source
    2. Preparing Your Web Database
    3. Configuring Carbon
      1. carbon.conf
      2. storage-schemas.conf
      3. storage-aggregation.conf
      4. Some Final Preparations
      5. Starting Your Carbon Daemons
    4. Configuring Graphite-Web
      1. local_settings.py
      2. Setting Up Apache
    5. Verifying Your Graphite Installation
      1. Carbon Statistics
      2. Feeding New Data to Carbon
      3. Building Your First Graph
  6. 5. The Graphite User Interface
    1. Finding Metrics
      1. Navigating the Tree
      2. Using the Search Feature
      3. Working Smarter with the Auto-Completer
      4. Wildcards
    2. The Graphite Composer Window
    3. The Embedded Chart
    4. The Toolbar
      1. Selecting Recent Data
      2. Refreshing the Graph
      3. Selecting a Date Range
      4. Exporting a Short URL
      5. Loading a Graph from URL
      6. Saving to My Graphs
      7. Deleting from My Graphs
    5. The Graph Options Menu
      1. Adding a Graph Title
      2. Overriding the Graph Legend
      3. Toggling Axes and the Grid
      4. Applying a Graph Template
      5. Line Chart Modes
      6. Area and Stacked Graphs
      7. Tweaking the Y-Axis
    6. The Graph Data Dialog
      1. What Are Targets Anyway?
      2. Building a Carbon Performance Graph
    7. Sharing Your Work
  7. 6. The Render API
    1. Working with Functions
      1. Starting with the Basics
      2. Math and Statistical Transforms
      3. Filtering and Sorting
      4. Grouping on Wildcards
      5. Data Smoothing and Forecasting
      6. Adjusting Metric Labels
    2. Alternate Output Formats
  8. 7. Dashboards
    1. Why Do I Need a Dashboard?
    2. Graphite Dashboard
    3. Third-Party Dashboards
      1. Grafana
      2. Tasseo
      3. Dusk
    4. Do-It-Yourself
      1. Dashing
      2. Rickshaw and D3.js
    5. Conclusion
  9. 8. Troubleshooting Graphite Performance
    1. First, the Basics
    2. The Troubleshooting Toolbelt
      1. Generating Metrics and Benchmarking
      2. CPU Utilization
      3. Disk Performance (I/O)
      4. Networking
      5. Inspecting Metrics
    3. Configuration Settings
      1. Carbon
      2. Graphite-Web
    4. Logging
      1. Carbon
      2. Graphite-Web
      3. Kernel messages
    5. Failure Scenarios
      1. The Full Disk
      2. CPU Saturation
      3. Rendering Problems
    6. Taking It to the Next Level
  10. 9. Scaling Graphite
    1. What Makes It “Hard” to Scale Graphite?
    2. Peter’s Graphite Story
      1. The Beginning
      2. The Pains of Popularity
      3. Clearing the Next Hurdle
      4. Try, Try Again
      5. Maximizing Resources
      6. Avoiding Outages
      7. Shared Web Database
      8. Scaling in Both Directions
    3. Some Final Thoughts
    4. Summary
  11. A. Carbon and Graphite-Web Internal Statistics
    1. Carbon
      1. Common to All Carbon types
      2. carbon-cache
      3. carbon-relay
      4. carbon-aggregator
    2. Graphite-Web
  12. Index

Product information

  • Title: Monitoring with Graphite
  • Author(s): Jason Dixon
  • Release date: March 2017
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781491916827