> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitoring Component

> Monitoring Component (Monitoring Component), the component in the Apinizer platform that provides system health monitoring, anomaly detection, and alarm management functions. It monitors the uptime status of API Proxies at specified time intervals with Uptime Monitor. It detects anomalies that exceed threshold values by analyzing time-based data in log records with Anomaly Detector. It produces and manages alarms for various system components such as Kubernetes, Elasticsearch, SSL/JWK certificate expiration, API traffic logs, and application logs.

## Monitoring Component Concept

<CardGroup cols={2}>
  <Card title="Uptime Monitor" icon="clock">
    Monitoring uptime status of API Proxy endpoints

    Regular checks at specified time intervals and triggering actions when expectations are not met.
  </Card>

  <Card title="Anomaly Detector" icon="triangle-exclamation">
    Anomaly detection in log records

    Detecting anomalies that exceed threshold values by analyzing time-based data.
  </Card>

  <Card title="System Health" icon="heart-pulse">
    Platform and component health monitoring

    Monitoring status of Kubernetes, Elasticsearch, and other platform components.
  </Card>

  <Card title="Performance Metrics" icon="gauge">
    CPU, memory, disk, network metrics

    Collecting and analyzing system and application performance metrics.
  </Card>

  <Card title="Alarm Management" icon="bell">
    Alarm production and management

    Producing alarms and sending notifications for various system components.
  </Card>
</CardGroup>

## Monitoring Component Features

### Uptime Monitor

<AccordionGroup>
  <Accordion title="Endpoint Monitoring">
    * Endpoint accessibility check with HTTP requests
    * Regular checks at specified time intervals
    * Method, URL, parameter, and header support
    * Response validation with assertion
  </Accordion>

  <Accordion title="Configuration">
    * Determining execution frequency with job scheduler
    * Selecting from test collection
    * Timeout settings
    * Retry on failure
  </Accordion>

  <Accordion title="Actions">
    * Triggering actions when expectations are not met
    * Actions like email, API call, notification
    * Integration with connectors
  </Accordion>
</AccordionGroup>

<Tip>
  For detailed information about Uptime Monitor, see the [Uptime Monitor](/en/tutorials/api-monitoring-scenarios/uptime-monitor-usage) page.
</Tip>

### Performance Metrics

<CardGroup cols={2}>
  <Card title="CPU Metrics" icon="microchip">
    * CPU usage
    * CPU load average
    * CPU core count
  </Card>

  <Card title="Memory Metrics" icon="memory">
    * Memory usage
    * Heap memory
    * Garbage collection
  </Card>

  <Card title="Disk Metrics" icon="hard-drive">
    * Disk usage
    * Disk I/O
    * Disk space
  </Card>

  <Card title="Network Metrics" icon="network-wired">
    * Network throughput
    * Network latency
    * Connection count
  </Card>
</CardGroup>

### API Metrics

<AccordionGroup>
  <Accordion title="Request Metrics">
    * Request rate
    * Request latency
    * Request size
  </Accordion>

  <Accordion title="Response Metrics">
    * Response time
    * Response size
    * Status code distribution
  </Accordion>

  <Accordion title="Error Metrics">
    * Error rate
    * Error types
    * Error trends
  </Accordion>
</AccordionGroup>

### Anomaly Detector

<AccordionGroup>
  <Accordion title="Condition Types">
    Four different condition types can be used for anomaly detection:

    * **Threshold Value Check**: Anomaly detection when metric values exceed determined threshold value
    * **EMA with Bollinger Bands**: Anomaly detection using Exponential Moving Average and Bollinger Bands
    * **Query/Filter Ratio Check**: Anomaly detection based on ratio of query and filter results
    * **Custom Conditions**: User-defined complex conditions

    <Tip>
      Anomaly Detector detects unexpected behaviors by analyzing API traffic logs and produces alarms.
    </Tip>
  </Accordion>

  <Accordion title="Configuration">
    * Defining queries and filters
    * Determining conditions
    * Time range and triggering frequency
    * Defining actions when anomaly is detected
  </Accordion>
</AccordionGroup>

<Tip>
  For detailed information about Anomaly Detector, see the [Anomaly Detector](/en/monitor/anomaly-detector) page.
</Tip>

### Alarm Management

<AccordionGroup>
  <Accordion title="Alarm Types">
    The following alarm types are available in Apinizer:

    * **Kubernetes Pod Health Status**: Health status of Kubernetes pods
    * **Kubernetes Node Health Status**: Health status of Kubernetes nodes
    * **Kubernetes Node CPU Percentage**: Kubernetes node CPU usage percentage
    * **Elasticsearch Health Status**: Elasticsearch cluster health status
    * **Elasticsearch CPU Percentage**: Elasticsearch CPU usage percentage
    * **Elasticsearch Disk Percentage**: Elasticsearch disk usage percentage
    * **API Traffic Logs Exist in Database**: Existence of API traffic logs in database
    * **Remaining Expiration Days of SSL**: Remaining validity days of SSL certificate
    * **Remaining Expiration Days of JWK**: Remaining validity days of JWK key
    * **Application Logs Count**: Application log count

    <Tip>
      Alarm types enable early detection of problem situations by monitoring different components of the system.
    </Tip>
  </Accordion>

  <Accordion title="Alarm Production">
    * Threshold value exceedance
    * Anomaly detection
    * Health check failure
    * Uptime monitor failure
  </Accordion>

  <Accordion title="Alarm Channels">
    Alarm notifications can be sent through various channels:

    * **Email**: Email notifications
    * **Webhook**: Webhook integration
    * **Connectors**: Actions with connectors like email, API call, notification, SNMP

    <Tip>
      Alarm channels are configured using connectors. For detailed information, see the [Actions and Connectors](/en/concepts/core-concepts/connector) page.
    </Tip>
  </Accordion>

  <Accordion title="Alarm Management">
    * Alarm grouping
    * Alarm filtering
    * Alarm acknowledgment
    * Alarm escalation
  </Accordion>
</AccordionGroup>

<Tip>
  For detailed information about alarm management, see the [Alarm (Alert)](/en/monitor/alarm) page.
</Tip>

## Monitoring Component Components

<CardGroup cols={3}>
  <Card title="Metric Collector" icon="database">
    Component that collects metrics

    * **System Metrics**: CPU, memory, disk, network
    * **Application Metrics**: API metrics, business metrics
    * **Custom Metrics**: User-defined metrics
  </Card>

  <Card title="Alarm Manager" icon="bell">
    Component that manages alarms

    * **Rule Engine**: Alarm rules
    * **Notification Service**: Notification service
    * **Alarm Aggregation**: Alarm aggregation
  </Card>

  <Card title="Dashboard" icon="chart-line">
    Visualization and monitoring interface

    * **Real-Time Dashboards**: Real-time dashboards
    * **Custom Dashboards**: Custom dashboards
    * **Widgets**: Various widgets
  </Card>
</CardGroup>

## Monitoring Component Integrations

<CardGroup cols={2}>
  <Card title="Prometheus" icon="chart-line">
    * Prometheus integration
    * Metric export
    * Prometheus scraping
  </Card>

  <Card title="Grafana" icon="chart-bar">
    * Grafana integration
    * Dashboard import
    * Visualization
  </Card>

  <Card title="ELK Stack" icon="magnifying-glass">
    * Elasticsearch, Logstash, Kibana
    * Log collection
    * Log analysis
  </Card>

  <Card title="Custom Integrations" icon="plug">
    * Webhook integration
    * Custom API integration
  </Card>
</CardGroup>

## Monitoring Usage Scenarios

<CardGroup cols={3}>
  <Card title="API Proxy Uptime Monitoring" icon="clock">
    1. Monitoring API Proxy endpoints with Uptime Monitor
    2. Sending regular HTTP requests
    3. Response validation and assertion check
    4. Triggering actions on failure
  </Card>

  <Card title="Anomaly Detection" icon="triangle-exclamation">
    1. Defining queries and filters in log records
    2. Determining conditions (threshold value, EMA, Bollinger Bands)
    3. Producing alarms when anomaly is detected
    4. Sending notifications with actions
  </Card>

  <Card title="System Component Monitoring" icon="heart-pulse">
    1. Monitoring Kubernetes pod and node statuses
    2. Monitoring Elasticsearch health and resource usage
    3. Monitoring SSL and JWK certificate expiration
    4. Monitoring API traffic logs and application logs
  </Card>

  <Card title="Performance Monitoring" icon="gauge">
    1. Collecting CPU, memory metrics
    2. Performing trend analysis
    3. Detecting bottlenecks
    4. Optimization recommendations
  </Card>
</CardGroup>

## Monitoring Best Practices

<CardGroup cols={2}>
  <Card title="Metric Collection" icon="database">
    * Collect important metrics
    * Filter unnecessary metrics
    * Use sampling
  </Card>

  <Card title="Alarm Configuration" icon="bell">
    * Select appropriate threshold values
    * Reduce false positives
    * Group alarms
  </Card>

  <Card title="Dashboard Design" icon="chart-line">
    * Meaningful dashboards
    * Highlight important metrics
    * Real-time and historical views
  </Card>

  <Card title="Retention" icon="clock">
    * Appropriate retention policies
    * Long-term retention
    * Cost optimization
  </Card>
</CardGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Analytics Engine" icon="chart-bar" href="/en/concepts/core-components/analytics-engine">
    Learn about Analytics Engine component
  </Card>

  <Card title="Data Log Layer" icon="database" href="/en/concepts/architecture#5-data-and-log-layer">
    Learn about Data Log Layer architecture
  </Card>

  <Card title="Uptime Monitor" icon="clock" href="/en/tutorials/api-monitoring-scenarios/uptime-monitor-usage">
    Uptime Monitor usage
  </Card>

  <Card title="Anomaly Detector" icon="triangle-exclamation" href="/en/monitor/anomaly-detector">
    Anomaly Detector usage
  </Card>

  <Card title="Alarm Management" icon="bell" href="/en/monitor/alarm">
    Alarm management
  </Card>

  <Card title="Prometheus & Grafana" icon="chart-line" href="/en/setup/kubernetes/prometheus-grafana">
    Prometheus & Grafana integration
  </Card>
</CardGroup>
