Basic Monitoring Concepts

Introduction

Monitoring involves collecting, analyzing, and visualizing metrics to ensure the application is running smoothly. Key components include:

  • Metrics: Quantitative data points that provide insights into the application’s performance.

  • Prometheus: An open-source monitoring system that scrapes metrics from applications.

  • Grafana: A visualization tool that can be used to create dashboards for monitoring metrics.

Types of Metrics

Metrics can be categorized into several types, each serving a different purpose in monitoring the application:

  • Counter: A counter is a cumulative metric that represents a single monotonically increasing value. It is typically used to count the number of events, such as requests or errors. Example: http_requests_total - the total number of HTTP requests received.

  • Gauge: A gauge is a metric that represents a single numerical value that can arbitrarily go up and down. It is typically used to measure values like memory usage or the number of active threads. Example: jvm_memory_used_bytes - the amount of used memory in bytes.

  • Histogram: A histogram samples observations (usually things like request durations or response sizes) and counts them in configurable buckets. It also provides a sum of all observed values. Example: http_request_duration_seconds - the duration of HTTP requests in seconds.

  • Timer: A timer is a combination of a histogram and a counter. It measures the duration of events and counts the number of occurrences. Example: method_execution_time - the time taken to execute a method.

  • Summary: Similar to a histogram, a summary samples observations and provides a total count and sum of all observed values. However, it also calculates configurable quantiles over a sliding time window. Example: http_response_size_bytes - the size of HTTP responses in bytes.

Understanding these types of metrics will help you effectively monitor and analyze the performance and health of your OCS.io application.