Introduction
ArangoDB is a multi-model database that supports document, key-value, and graph data models within a single engine.
Prometheus can monitor these components by scraping metrics they expose, providing insights into cluster health, performance, and system status.
Steps to Configure
Step 1: Check for Existing ConfigMap
Run the following command to see if the opsramp-workload-metric-user-config ConfigMap already exists:
kubectl get configmap opsramp-workload-metric-user-config -n <agent-installed-namespace>Step 2: Create a New ConfigMap (if not available)
If this is your first setup, create a workload-master ConfigMap. Use the following template and update it as per your workload requirements:
apiVersion: v1
kind: ConfigMap
metadata:
name: opsramp-workload-metric-user-config
namespace: opsramp-agent
data:
workloads: |
arangodb/prometheus:
- name: arangodb
collectionFrequency: 59s
port: 8529
userName: "root"
password: ""
userRelabelConfigs:
- regex: "rocksdb_cache_edge_inserts_total"
action: "include"
- regex: "rocksdb_cache_active_tables"
action: "include"
- regex: "arangodb_aql_cursors_active"
action: "include"
targetPodSelector:
matchLabels:
- key: role
operator: ==
value:Note
Ensure there are no extra spaces at the end of any line in the manifest. Extra spaces can cause rendering issues.Step 3: Apply the ConfigMap
kubectl apply -f <path-to-your-manifest-file>Step 4: Verify in OpsRamp Portal
After a few minutes, check metrics in the OpsRamp Portal > Dashboards > Dashboard.
Step 5: Set Up Alerts and Availability Rules
Once metrics are visible, you can configure alerts and availability rules in the OpsRamp portal. Edit the relevant ConfigMaps to adjust workload or application-specific monitoring.
Supported Metrics
Supported metrics for this workload as provided by the Kubernetes 2.0 Agent.
| Metric | Description |
|---|---|
| arangodb_agency_cache_callback_number | Tracks the number of callbacks in the agency cache. |
| arangodb_agency_callback_number | Represents the total number of callbacks registered in the agency. |
| arangodb_agency_callback_registered_total | Counts the total number of callbacks successfully registered in the agency. |
| arangodb_agencycomm_request_time_msec_bucket | Distribution of request times in milliseconds for agency communication. |
| arangodb_agencycomm_request_time_msec_count | Total count of agency communication requests. |
| arangodb_agencycomm_request_time_msec_sum | Summed total of time taken for agency communication requests. |
| arangodb_aql_all_query_total | Counts all queries executed in ArangoDB's AQL engine. |
| arangodb_aql_current_query | Tracks the number of currently running AQL queries. |
| arangodb_aql_cursors_active | Monitors the number of active AQL cursors. |
| arangodb_aql_cursors_memory_usage | Memory consumed by active AQL cursors. |
| arangodb_aql_global_memory_limit | Defines the global memory limit for AQL queries. |
| arangodb_aql_global_memory_usage | Tracks current memory usage of all running AQL queries. |
| arangodb_aql_global_query_memory_limit_reached_total | Counts instances where AQL queries exceeded the global memory limit. |
| arangodb_aql_local_query_memory_limit_reached_total | Counts instances where a local AQL query exceeded its memory limit. |
| arangodb_aql_query_time_bucket | Distribution of AQL query execution times. |
| arangodb_aql_query_time_count | Total number of executed AQL queries. |
| arangodb_aql_query_time_sum | Total execution time of all AQL queries. |
| arangodb_aql_slow_query_time_bucket | Distribution of slow AQL query execution times. |
| arangodb_aql_slow_query_time_count | Number of AQL queries identified as slow. |
| arangodb_aql_slow_query_time_sum | Total execution time for slow AQL queries. |
| arangodb_aql_total_query_time_msec_total | Tracks the total execution time of all AQL queries in milliseconds. |
| arangodb_collection_lock_acquisition_micros_total | Total time spent acquiring collection locks in microseconds. |
| arangodb_collection_lock_acquisition_time_bucket | Distribution of collection lock acquisition times. |
| arangodb_collection_lock_acquisition_time_count | Counts the number of collection lock acquisitions. |
| arangodb_collection_lock_acquisition_time_sum | Summed time spent acquiring collection locks. |
| arangodb_collection_lock_sequential_mode_total | Total number of times the collection lock was acquired in sequential mode. |
| arangodb_collection_lock_timeouts_exclusive_total | Counts the number of exclusive collection lock timeouts. |
| arangodb_collection_lock_timeouts_write_total | Counts the number of write lock timeouts for collections. |
| arangodb_connection_pool_connections_created_total | Total number of database connections created in the pool. |
| arangodb_connection_pool_connections_current | Number of active connections currently in the pool. |
| arangodb_connection_pool_lease_time_hist_bucket | Distribution of lease times for connection pool usage. |
| arangodb_connection_pool_lease_time_hist_count | Counts the number of connection pool leases. |
| arangodb_connection_pool_lease_time_hist_sum | Total lease time for connection pool usage. |
| arangodb_connection_pool_leases_failed_total | Total number of failed lease requests in the connection pool. |
| arangodb_connection_pool_leases_successful_total | Total number of successful lease requests in the connection pool. |
| arangodb_connection_statistics_memory_usage | Tracks memory consumption for managing database connections. |
| arangodb_dirty_read_queries_total | Number of queries executed that resulted in dirty reads. |
| arangodb_dirty_read_transactions_total | Number of transactions executed with dirty reads. |
| arangodb_file_descriptors_current | Number of file descriptors currently in use. |
| arangodb_file_descriptors_limit | Maximum number of file descriptors allowed. |
| arangodb_flush_subscriptions | Number of active flush subscriptions. |
| arangodb_heartbeat_failures_total | Number of failed heartbeat messages in the cluster. |
| arangodb_heartbeat_send_time_msec_bucket | Distribution of heartbeat send times in milliseconds. |
| arangodb_heartbeat_send_time_msec_count | Counts the number of heartbeat messages sent. |
| arangodb_heartbeat_send_time_msec_sum | Summed total of all heartbeat send times. |
| arangodb_http1_connections_total | Total number of HTTP/1 connections handled by the server. |
| arangodb_http2_connections_total | Total number of HTTP/2 connections handled by the server. |
| arangodb_index_estimates_memory_usage | Memory used for index estimation. |