# Monitor your cluster

UltiHash can be integrated with various monitoring, logging, and analytics tools. Below are key integrations you may want to configure:

### 1. Telemetry and monitoring

* **Purpose**: Export metrics and logs to external systems like Prometheus and Loki.
* **Example**: Configure the OpenTelemetry Collector to export data to Prometheus. Please refer to the [Open Telemetry documentation](https://opentelemetry.io/docs/collector/).

  ```yaml
  collector:
    config:
      exporters:
        prometheus/mycompany:
          endpoint: "1.2.3.4:1234"
      service:
        pipelines:
          metrics:
            receivers:
             - otlp
             - prometheus/mycompany

  ```
* **Recommendation**: Set up monitoring early to ensure you can track system performance and diagnose issues as they arise.

The metrics exported by the UltiHash cluster are listed below, categorized into multiple groups.

#### Storage service requests

* `storage_read_fragment_req`: number of requests received for reading a fragment
* `storage_read_address_req`: number of requests received for reading an address
* `storage_write_req`: number of requests received for writing data
* `storage_sync_req`: number of requests received to sync data to persistent storage
* `storage_remove_fragment_req`: number of requests received to remove a fragment from storage
* `storage_used_req`: number of requests received to get the used space

#### Deduplicator service requests

* `deduplicator_req`: number of requests received to deduplicate uploaded data

#### Entrypoint service requests

* `entrypoint_abort_multipart_req`: number of [`AbortMultipartUpload`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) requests received
* `entrypoint_complete_multipart_req`: number of [`CompleteMultipartUpload`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) requests received
* `entrypoint_create_bucket_req`: number of [`CreateBucket`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) requests received
* `entrypoint_delete_bucket_req`: number of [`DeleteBucket`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html) requests received
* `entrypoint_delete_object_req`: number of [`DeleteObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) requests received
* `entrypoint_delete_objects_req`: number of [`DeleteObjects`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html) requests received
* `entrypoint_get_bucket_req`: number of [`GetBucket`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html) requests received
* `entrypoint_get_object_req`: number of [`GetObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) requests received
* `entrypoint_head_object_req`: number of [`HeadObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) requests received
* `entrypoint_init_multipart_req`: number of [`CreateMultipartUpload`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) requests received
* `entrypoint_list_buckets_req`: number of [`ListBuckets`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) requests received
* `entrypoint_list_multipart_req`: number of [`ListMultipartUploads`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) requests received
* `entrypoint_list_objects_req`: number of [`ListObjects`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) requests received
* `entrypoint_list_objects_v2_req`: number of [`ListObjectsV2`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) requests received
* `entrypoint_multipart_req`: number of [`UploadPart`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) requests received
* `entrypoint_put_object_req`: number of [`PutObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) requests received

#### Utilization Metrics

* `gdv_l1_cache_hit_counter`: Hit count of the L1 cache in the `global_data_view`
* `gdv_l1_cache_miss_counter`: Miss count of the L1 cache in the `global_data_view`
* `gdv_l2_cache_hit_counter`: Hit count of the L2 cache in the `global_data_view`
* `gdv_l2_cache_miss_counter`: Miss count of the L2 cache in the `global_data_view`
* `deduplicator_set_fragment_counter`: The number of fragments pointed in the deduplicator set maintained by the `deduplicator service`
* `deduplicator_set_fragment_size_counter`: The aggregated size of fragments pointed in the deduplicator set maintained by the `deduplicator service`
* `entrypoint_ingested_data_counter`: The total data volume ingested by a `entrypoint service`
* `entrypoint_egressed_data_counter`: The total data volume egressed by a `entrypoint service`
* `entrypoint_original_data_volume_gauge`: The original/raw data volume in the storage cluster, maintained by the `entrypoint service`
* `active_connections`: Number of currently handled connections
* `storage_available_space_gauge`: Storage space available to a `storage service` instance
* `storage_used_space_gauge`: Storage space used by a `storage service` instance


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ultihash.io/administration/monitor-your-cluster.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
