Tous les produits
Search
Centre de documentation

Managed Service for Prometheus:Surveiller Cassandra avec Prometheus

Dernière mise à jour :Oct 09, 2026

Cette rubrique explique comment surveiller Cassandra à l'aide de Managed Service for Prometheus.

Prérequis

Vous avez créé une instance Prometheus. Pour plus d'informations, consultez :

Étape 1 : Déployer l'agent JMX Cassandra

  1. Téléchargez l'agent JMX Cassandra correspondant à votre version de Cassandra sur l'instance ECS exécutant Cassandra.

  2. Décompressez le package de l'agent téléchargé dans le répertoire MCAC_ROOT et ajoutez le contenu suivant au fichier cassandra-env.sh.

    MCAC_ROOT=/path/to/directory
    JVM_OPTS="$JVM_OPTS -javaagent:${MCAC_ROOT}/lib/datastax-mcac-agent.jar"
    Important

    L'agent JMX Cassandra expose le port 9103 pour permettre à Prometheus de collecter les données. Pour modifier ce port, changez la valeur dans le fichier ${MCAC_ROOT}/config/collectd.conf.tmpl par le port souhaité.

    LoadPlugin write_prometheus
    <Plugin write_prometheus>
      Port "9103"
    </Plugin>
  3. Une fois la configuration terminée, redémarrez l'application Cassandra. Sur le serveur ECS, exécutez la commande curl localhost:{jmx_port}/metrics. Une installation réussie renvoie des données.

    # HELP collectd_collectd_cache_size write_prometheus plugin: 'collectd' Type: 'cache_size', Dstype: 'gauge', Dsname: 'value'
    # TYPE collectd_collectd_cache_size gauge
    collectd_collectd_cache_size{collectd="cache",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 6985 16
    # HELP collectd_collectd_derive_total write_prometheus plugin: 'collectd' Type: 'derive', Dstype: 'derive', Dsname: 'value'
    # TYPE collectd_collectd_derive_total counter
    collectd_collectd_derive_total{collectd="write_queue",type="dropped",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 0 168768
    # HELP collectd_collectd_queue_length write_prometheus plugin: 'collectd' Type: 'queue_length', Dstype: 'gauge', Dsname: 'value'
    # TYPE collectd_collectd_queue_length gauge
    collectd_collectd_queue_length{collectd="write_queue",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 144 168
    # HELP collectd_contextswitch_total write_prometheus plugin: 'contextswitch' Type: 'contextswitch', Dstype: 'derive', Dsname: 'value'
    # TYPE collectd_contextswitch_total counter
    collectd_contextswitch_total{instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1"} 3... 168768
    # HELP collectd_cpu_total write_prometheus plugin: 'cpu' Type: 'cpu', Dstype: 'derive', Dsname: 'value'
    # TYPE collectd_cpu_total counter
    collectd_cpu_total{cpu="0",type="idle",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50160255 16876
    collectd_cpu_total{cpu="0",type="interrupt",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 1687686
    collectd_cpu_total{cpu="0",type="nice",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 226 1687686335
    collectd_cpu_total{cpu="0",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 13644 16876
    collectd_cpu_total{cpu="0",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350
    collectd_cpu_total{cpu="0",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 231356 16876
    collectd_cpu_total{cpu="0",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1519742 168768
    collectd_cpu_total{cpu="0",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 585 1687686335
    collectd_cpu_total{cpu="1",type="idle",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50596353 16876
    collectd_cpu_total{cpu="1",type="interrupt",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 1687686
    collectd_cpu_total{cpu="1",type="nice",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 219 1687686335
    collectd_cpu_total{cpu="1",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 9320 168768
    collectd_cpu_total{cpu="1",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350
    collectd_cpu_total{cpu="1",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 129114 16876
    collectd_cpu_total{cpu="1",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1504382 168768
    collectd_cpu_total{cpu="1",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50115892 16876
    collectd_cpu_total{cpu="2",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 4906 168768
    collectd_cpu_total{cpu="2",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350
    collectd_cpu_total{cpu="2",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 230256 16876
    collectd_cpu_total{cpu="2",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1562142 168768
    collectd_cpu_total{cpu="2",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 8267 16876863
    collectd_cpu_total{cpu="3",type="idle",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 50612210 16876
    collectd_cpu_total{cpu="3",type="interrupt",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 1687686
    collectd_cpu_total{cpu="3",type="nice",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 218 1687686335
    collectd_cpu_total{cpu="3",type="softirq",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 2815 168768
    collectd_cpu_total{cpu="3",type="steal",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 0 16876863350
    collectd_cpu_total{cpu="3",type="system",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 129656 16876
    collectd_cpu_total{cpu="3",type="user",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 1506299 168768
    collectd_cpu_total{cpu="3",type="wait",instance="172.16.x.x",cluster="Test Cluster",dc="datacenter1",rack="rack1",insight_series="1"} 183 1687686335

Étape 2 : Intégrer Cassandra

  1. Connectez-vous à la console ARMS.

  2. Connectez-vous à la console Cloud Monitor.

  3. Dans le volet de navigation de gauche, cliquez sur Access Center.

  4. Sur la page Access Center, dans la section Database, cliquez sur Cassandra.

  1. Dans l'onglet Start Integration du panneau Cassandra, configurez les paramètres, puis cliquez sur OK.

    Paramètre

    Description

    Select environment type

    Sélectionnez le type d'environnement :

    • Environnement Container Service

    • ECS (Virtual Private Cloud (VPC))

    Sélectionner un cluster

    Sélectionnez le cluster cible.

    Pod label

    Libellé du pod exécutant le service Cassandra. Il est recommandé d'utiliser un libellé unique.

    Service port

    Port utilisé par l'agent JMX Cassandra installé à l'étape 1. Le port par défaut est saisi automatiquement.

    Metrics path

    Endpoint des métriques de l'agent JMX Cassandra installé à l'étape 1. Le chemin par défaut est saisi automatiquement.

    Scrape interval (seconds)

    Intervalle, en secondes, pour la collecte des métriques. La valeur par défaut est 30.

Étape 3 : Consulter les tableaux de bord Cassandra

  1. Connectez-vous à la console Cloud Monitor.

  2. Connectez-vous à la console ARMS.

  3. Dans le volet de navigation de gauche, cliquez sur Data Import Management.

  4. Sur la page Data Import Management, cliquez sur l'onglet Installed. Recherchez l'environnement souhaité et cliquez sur son nom pour ouvrir la page de détails.

  5. Dans l'onglet Component Management, cliquez sur Cassandra dans la section Component Type, puis cliquez sur l'onglet Dashboards pour afficher tous les noms des tableaux de bord.

    La page affiche deux tableaux de bord : Cassandra Detail et Cassandra Summary.

  6. Cliquez sur le nom d'un tableau de bord pour afficher le tableau de bord Grafana.

Étape 4 : Configurer les alertes Cassandra

  1. Dans l'onglet Component Management, cliquez sur Cassandra dans la section Component Type, puis sélectionnez l'onglet Alert Rules pour afficher les règles d'alerte par défaut.

    Les règles d'alerte par défaut incluent :

    • Délais d'expiration des requêtes

    • Requêtes ayant échoué

    • Nombre total de messages

    • Utilisation du disque

    • Utilisation de la mémoire

    • Utilisation du CPU

    • Connexions client

  2. Vous pouvez également créer des règles d'alerte personnalisées. Pour plus d'informations, consultez la rubrique Créer une règle d'alerte Prometheus.

Métriques clés

Informations sur le cluster et les nœuds

Métrique

Niveau

Description

Explication

mcac_client_connected_native_clients

Majeur

Nombre de connexions CQL

Un nombre excessif de connexions consomme les ressources système et augmente la latence côté client.

mcac_table_live_disk_space_used_total

Majeur

Espace disque utilisé par Cassandra

Une valeur élevée peut entraîner un manque d'espace disque et augmenter la latence d'accès aux données.

mcac_table_snapshots_size

Recommandé

Taille des fichiers de snapshot Cassandra

Les snapshots servent à la récupération des données. Une valeur élevée peut saturer l'espace disque, empêchant ainsi le stockage de snapshots complets.

collectd_uptime

Majeur

Temps de fonctionnement du nœud

Une valeur élevée indique que le système n'a pas été redémarré depuis longtemps. Si le système présente des vulnérabilités connues, cela peut accroître les risques de sécurité.

Métriques de performance essentielles

Métrique

Niveau

Description

Explication

mcac_table_read_latency

Critique

Latence de lecture client

Une valeur élevée ralentit les lectures applicatives et dégrade l'expérience utilisateur.

mcac_table_write_latency

Critique

Latence d'écriture client

Une valeur élevée ralentit les écritures applicatives et dégrade l'expérience utilisateur.

Exceptions et erreurs

Métrique

Niveau

Description

Explication

mcac_client_request_timeouts_total

Critique

Requêtes client expirées

Une valeur élevée signale une charge système importante, ce qui affecte gravement l'expérience utilisateur.

mcac_client_request_failures_total

Critique

Requêtes client ayant généré des exceptions

Une valeur élevée signale une charge système importante, ce qui affecte gravement l'expérience utilisateur.

mcac_dropped_message_dropped_total

Critique

Messages perdus

Une valeur élevée signale une charge système importante, ce qui affecte gravement l'expérience utilisateur.

Cache et filtres Bloom

Métrique

Niveau

Description

Explication

mcac_table_key_cache_hit_rate

Majeur

Taux de succès du cache de clés

Une valeur faible peut réduire les performances de lecture des applications et nuire à l'expérience utilisateur.

mcac_table_row_cache_hit_total

Majeur

Nombre de succès du cache de lignes

Une valeur faible peut réduire les performances de lecture des applications et nuire à l'expérience utilisateur.

mcac_table_row_cache_miss_total

Recommandé

Nombre d'échecs du cache de lignes

Une valeur élevée peut réduire les performances de lecture des applications et nuire à l'expérience utilisateur.

mcac_table_row_cache_hit_out_of_range_total

Recommandé

Nombre de succès du cache de lignes ayant tout de même nécessité un accès au disque.

Une valeur élevée peut réduire les performances de lecture des applications et nuire à l'expérience utilisateur.

mcac_table_bloom_filter_false_ratio

Majeur

Taux de faux positifs du filtre Bloom

Un taux de faux positifs élevé entraîne l'identification incorrecte d'éléments inexistants comme existants. Cela gaspille du temps et des ressources lors des requêtes, ce qui dégrade les performances et augmente les coûts.

Utilisation du CPU, de la mémoire et du disque

Métrique

Niveau

Description

Explication

collectd_cpu_total

Critique

Utilisation du CPU

Une valeur élevée indique une charge système importante, ce qui augmente la latence des requêtes client et affecte gravement l'expérience utilisateur.

collectd_memory

Critique

Utilisation de la mémoire

Une valeur élevée indique une charge système importante, ce qui augmente la latence des requêtes client et affecte gravement l'expérience utilisateur.

collectd_df_df_complex

Critique

Utilisation du disque

Une valeur élevée signifie que l'espace disque disponible est insuffisant, ce qui peut empêcher la persistance des données et provoquer des interruptions de service.

Compactage des SSTables

Métrique

Niveau

Description

Explication

mcac_table_pending_compactions

Majeur

Tâches de compactage SSTable en cours

Une valeur élevée indique une charge système importante, ce qui augmente la latence des requêtes client. Configurez un intervalle de compactage raisonnable pour les SSTables.

mcac_table_compaction_bytes_written_total

Majeur

Taux de compactage des SSTables

Une valeur faible indique un compactage lent, susceptible de provoquer une accumulation de tâches. Envisagez de mettre à niveau les spécifications des nœuds.

mcac_table_compression_ratio

Majeur

Taux de compression des SSTables

Une valeur élevée indique que les fichiers compressés restent trop volumineux et que la compression est inefficace.

Fichiers sur disque

Métrique

Niveau

Description

Explication

mcac_table_live_ss_table_count

Majeur

Nombre de SSTables

Une valeur élevée augmente l'utilisation du disque et la latence en lecture/écriture. Configurez une stratégie de compactage SSTable appropriée.

mcac_table_live_disk_space_used_total

Majeur

Espace disque utilisé par les SSTables

Une valeur élevée augmente l'utilisation du disque et la latence en lecture/écriture. Configurez une stratégie de compactage SSTable appropriée.

mcac_table_ss_tables_per_read_histogram

Majeur

Nombre de SSTables lues par opération de lecture

Une valeur élevée augmente la latence de lecture côté client.

mcac_commit_log_total_commit_log_size

Majeur

Espace disque utilisé par le journal des validations (commit log)

Une valeur élevée peut entraîner un manque d'espace disque, une dégradation des performances en lecture/écriture et un allongement du temps de récupération des données.

mcac_table_memtable_live_data_size

Majeur

Espace utilisé par la MemTable

Une valeur élevée peut dégrader les performances d'écriture des données et la stabilité des nœuds.

mcac_table_waiting_on_free_memtable_space

Majeur

Temps passé à attendre la libération d'espace dans la MemTable

Une valeur élevée peut dégrader les performances d'écriture des données et la stabilité des nœuds.

État des pools de threads

Métrique

Niveau

Description

Explication

mcac_thread_pools_active_tasks

Critique

Nombre de tâches actives dans le pool de threads

Un nombre excessif de tâches bloquées consomme les ressources système, ralentit les réponses et peut même provoquer un crash du système.

mcac_thread_pools_total_blocked_tasks_total

Critique

Nombre de tâches bloquées dans le pool de threads

Un nombre excessif de tâches bloquées consomme les ressources système, ralentit les réponses et peut même provoquer un crash du système.

mcac_thread_pools_pending_tasks

Critique

Nombre de tâches en attente dans le pool de threads

Un nombre excessif de tâches en attente consomme trop de ressources système, provoque l'expiration des requêtes correspondantes et peut même faire planter le système.

mcac_thread_pools_completed_tasks

Majeur

Nombre de tâches terminées dans le pool de threads

Cette métrique reflète le débit du système. Une valeur plus élevée indique de meilleures performances.

Métriques JVM

Métrique

Niveau

Description

Explication

mcac_jvm_memory_used

Critique

Mémoire heap JVM utilisée

Une valeur élevée peut entraîner un manque de mémoire, déclencher des garbage collections fréquentes et réduire le débit de l'application.

mcac_jvm_gc_time

Critique

Temps consacré au garbage collection (GC)

Une valeur élevée indique des GC fréquentes. Le système dispose de moins de temps pour exécuter les charges de travail utilisateur, ce qui peut provoquer des délais d'expiration des requêtes ou même des plantages du système.