# Sidekiq Monitor Configuration Guide on the Elven Platform

The **Sidekiq Monitor** from **Elven Platform** enables checks based on key queue queries in **Sidekiq**. This feature helps configure continuous monitoring, set up **alerts**, and define **thresholds** for automatic **incident creation**, ensuring you are quickly informed about any irregularities in **connectivity** or **service performance**.

**Sidekiq** is a **queue management** and **background job processing** solution widely used in **Ruby** and **Rails** applications. Designed to efficiently handle **asynchronous tasks**, it allows **distributed systems** to process large volumes of **jobs** reliably and at scale. With support for **multiple queues**, **task prioritization**, and **scheduled jobs**, Sidekiq is ideal for scenarios such as **email delivery**, **bulk data processing**, **API integration**, and other **intensive operations**. Its **thread-based architecture** maximizes performance, while its native integration with **Redis** simplifies setup and maintenance, making Sidekiq a robust and flexible choice for developers looking to optimize **workflows** in their applications.

## **Accessing Sidekiq Monitoring**:&#x20;

* Navigate to the **main menu** and click on **Services Hub**.
* In **Queue**, select the **Sidekiq** item.

<figure><img src="https://content.gitbook.com/content/NbD6tAAcbxaY8pw1cchL/blobs/do8VqOuLhZ1I1lwoG9sH/sqm01.png" alt=""><figcaption></figcaption></figure>

## **Monitoring Configuration**

**Monitoring** the availability of your services has never been easier. Start by giving a clear name to the resource you want to track (**Resource Name**) to make identification easier. Then, adjust the **interval** between checks (**Interval**) and the **response timeout** (**Timeout**).

Select where the monitoring agent is located (**Checkpoint Cloud**) by choosing the **Environment**. If it doesn’t exist, you can create one using **+ Checkpoint**. After that, to configure **Sidekiq monitoring** in the **Elven Platform**, add the **Healthcheck URL**, which is the address used to verify the service’s health. This **endpoint** helps the platform ensure that **Sidekiq** is functioning correctly.

If your environment doesn’t use **SSL** or you're testing in an internal environment, check the **Skip SSL** option to bypass certificate verification. But remember: this option should be used with caution, especially in **production environments**.

Tracking **queue metrics** is essential to understand **Sidekiq’s performance**. The **Queue Size** field shows the total number of **pending jobs**, while **Buzy Size** indicates how many of those jobs are being processed in **real time**. The **Schedule Size** provides visibility into **scheduled jobs** set for future execution. Finally, the **Connected Clients** field allows you to monitor how many **processes or services** are currently connected to **Sidekiq**, helping identify **active interactions** and potential **bottlenecks**.

With this data configured, the **Elven Platform** offers a clear and efficient view for you to manage your **queues** and **workers** in a practical and intuitive way.

<figure><img src="https://content.gitbook.com/content/NbD6tAAcbxaY8pw1cchL/blobs/rILJQaoqF4GK1TGRJxsb/sqm02.png" alt=""><figcaption></figcaption></figure>

## **Automatic Incident Opening**

You can configure **automatic incident opening** to ensure a quick response to critical issues. To begin, define the **incident severity**, allowing you to prioritize according to urgency. Next, adjust the **Check Interval**, specifying the check frequency in seconds to continuously monitor the resource. This helps ensure you're always one step ahead, detecting problems as soon as they arise.

Additionally, select the **team to be notified** whenever an incident occurs and enable the **"Enable to set up automatic incidents opening"** option to ensure the configuration is active. With this setup, the platform automates **incident management**, making the response process faster and more efficient, without the need for manual intervention. This ensures your team is always ready to resolve any issue with speed and precision.

<figure><img src="https://content.gitbook.com/content/NbD6tAAcbxaY8pw1cchL/blobs/ptdgDfQVFFhujt167sZx/sqm03.png" alt=""><figcaption></figcaption></figure>

## **Maintenance Window**

The **Maintenance Window** is an essential feature for managing **planned maintenance periods** in your application. During this interval, **checks** are temporarily paused, preventing **monitoring**, **alerts**, and **notifications** from being triggered while you perform adjustments or updates. This allows maintenance to proceed smoothly, without generating unnecessary notifications or false alarms, ensuring your operations continue in an orderly fashion without unexpected interruptions in **performance reports**.

For example, imagine you need to update the **payment system** of an **e-commerce** platform, making backend adjustments such as installing new **security certificates**. To do this, you can configure a **Maintenance Window** for a specific time, such as **12/13/2024**, from **14:00 to 14:30**. During this period, the **Elven Platform** suspends checks, preventing the monitoring system from logging temporary failures or triggering false alerts. This way, you can make the necessary changes calmly, knowing that the **monitoring system** won’t be impacted during maintenance.

This approach ensures that updates are carried out in an organized manner, without affecting the **user experience** or generating unwanted **notifications**.

<figure><img src="https://content.gitbook.com/content/NbD6tAAcbxaY8pw1cchL/blobs/gRQfSXyxR9RgiP6MPxEz/sqm04.png" alt=""><figcaption></figcaption></figure>

## **Application Opening Hours**

You can also rely on the **Application Opening Hours** feature, which allows you to configure your application's **operating hours**. This functionality is essential for customizing **monitoring** based on the periods when your application is actually active, avoiding **alerts** and **notifications** outside of business hours. This makes monitoring more aligned with your business’s real needs, ensuring more accurate **reports** and efficient **management**.

For example, imagine your application operates only from **Monday to Friday**, between **09:00 and 18:00**. You can configure the **Application Opening Hours** to reflect this schedule by specifying the **days** and **operating periods**. With this setup, the **Elven Platform** automatically disables checks outside of these hours, preventing the logging of failures that don’t affect end users and avoiding unnecessary alerts.

This approach optimizes **performance analysis**, focusing only on relevant periods and providing a clearer view of your application's **health** during its **active hours**.

<figure><img src="https://content.gitbook.com/content/NbD6tAAcbxaY8pw1cchL/blobs/pSPCzpUKfZfL1bQHsDcG/sqm05.png" alt=""><figcaption></figcaption></figure>

## **Glossary of Technical Terms**

**Sidekiq**: Sidekiq is an **asynchronous job processing** tool designed for **Ruby** and **Rails** applications. It allows the management of **heavy and time-consuming tasks** outside the request-response cycle, ensuring that application performance is not affected by these operations. Sidekiq uses **queues** to organize jobs and **workers** to process them, offering **scalability** and **performance** through its **thread-based architecture**. In addition to supporting **concurrent and efficient job processing**, Sidekiq also provides features like **job scheduling** and **failure handling**. Ideal for tasks such as **email delivery**, **bulk data processing**, and **API integration**, Sidekiq offers a **robust** and **easy-to-configure** solution to improve the performance of Ruby applications.

**Interval**: The time interval between **automatic checks** performed during monitoring.

**Timeout**: The **maximum time** allowed for the monitoring system to receive a response from the monitored resource before registering a failure.

**Checkpoint Cloud**: The location where the **monitoring agent** is deployed, which can be a **pre-existing environment** or one created by the user.

**Healthcheck URL**: The URL used to check the **health status** of the Sidekiq service. It allows the **Elven Platform** to send requests to verify if Sidekiq is functioning properly.

**Skip SSL**:

* **Definition**: An option to disable **SSL certificate verification** when accessing the Healthcheck URL.
* **Usage**: Ideal for **non-SSL environments** or **internal testing**, but should be used with caution, especially in **production**.

**Queue Size**: **Definition**: The total number of **pending jobs** in the Sidekiq queue. Helps monitor **system load** and identify potential **processing delays**.

**Buzy Size**: The number of jobs being **actively processed** by Sidekiq. Indicates how many tasks are running in **real time**, showing the **activity level** of the workers.

**Schedule Size**: **Definition**: The number of jobs **scheduled for future execution**. Displays tasks that are planned but not yet running.

**Connected Clients**: The number of **clients** (processes or services) currently **connected** to Sidekiq. Helps monitor **active interactions** and identify potential **bottlenecks** or **congestion**.

**Enable to set up automatic incidents opening**: An option that, when enabled, activates **automatic incident creation** upon detection of **critical issues**.

**Severity**: The **level of criticality** assigned to an incident, allowing it to be **prioritized** based on **urgency**.

**Check Interval**: The time interval, in **seconds**, for performing **continuous checks** on the monitored resource.

**Maintenance Window**: A feature that **temporarily pauses monitoring**, alerts, and notifications during **planned maintenance periods**.

**Application Opening Hours**: A configuration that defines the **operating hours** of the application, aligning monitoring with **active periods** and avoiding alerts **outside business hours**.
