Apache CouchDB

L'intégration Apache CouchDB collecte des métriques liées au trafic, telles que le nombre de requêtes adressées à un nœud et les réponses du nœud. Elle collecte également les métriques des bases de données, telles que le nombre de bases de données ouvertes et le nombre d'opérations. L'intégration collecte les journaux d'accès et CouchDB généraux, puis les analyse en une charge utile JSON. Le résultat inclut les champs d'utilisateur, d'hôte, de niveau et de message.

Pour plus d'informations sur Apache CouchDB, consultez la page couchdb.apache.org/.

Prérequis

Pour collecter et ingérer des journaux et des métriques CouchDB, vous devez installer l'agent Ops version 2.11.0 ou ultérieure.

Ce récepteur est compatible avec Apache CouchDB versions 2.3.x, 3.1 et ultérieures.

Configurer l'agent Ops pour CouchDB

En suivant le guide de configuration de l'agent Ops, ajoutez les éléments requis pour collecter les journaux et les métriques de vos instances CouchDB, puis redémarrez l'agent.

Exemple de configuration

La commande suivante crée le fichier de configuration permettant de collecter et d'ingérer des journaux et des métriques de CouchDB, et de redémarrer l'agent Ops sous Linux.

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    couchdb:
      type: couchdb
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb
metrics:
  receivers:
    couchdb:
      type: couchdb
      username: usr
      password: pwd
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb
EOF
sudo service google-cloud-ops-agent restart

Configurer la collecte de journaux

Pour ingérer des journaux à partir de CouchDB, vous devez créer des récepteurs pour les journaux produits par CouchDB, puis créer un pipeline pour les nouveaux récepteurs. Pour configurer un récepteur pour vos journaux couchdb, spécifiez les champs suivants :

Champ Par défaut Description
type La valeur doit être égale à couchdb.
include_paths [/var/log/couchdb/couchdb.log] Liste des chemins d'accès du système de fichiers à lire en affichant chaque fichier. Un caractère générique (*) peut être utilisé dans les chemins d'accès. Exemple : /var/log/couchdb*/*.log.
exclude_paths Liste des formats de chemin d'accès au système de fichiers à exclure de l'ensemble correspondant à include_paths.
wildcard_refresh_interval 60s Intervalle d'actualisation pour les chemins d'accès de fichiers utilisant des caractères génériques dans include_paths. Renseigné sous la forme d'une durée, par exemple, 30s ou 2m. Cette propriété peut s'avérer utile lorsque le débit de journalisation est élevé et que les fichiers journaux sont alternés plus rapidement que l'intervalle par défaut. La valeur doit être un multiple de 1 s.

Contenu consigné

Le logName des journaux couchdb est dérivé des ID de récepteur spécifiés dans la configuration. Les champs détaillés dans l'entrée de journal (LogEntry) sont les suivants.

Champ Type Description
httpRequest.serverIp chaîne Adresse IP du serveur.
httpRequest.remoteIp chaîne Adresse IP du client.
httpRequest.requestMethod chaîne Méthode HTTP.
httpRequest.responseSize chaîne (int64) Taille d'une réponse
httpRequest.status nombre Code d'état HTTP.
jsonPayload.remote_user chaîne Nom d'utilisateur authentifié pour la requête.
jsonPayload.pid nombre ID du processus.
jsonPayload.message chaîne Message de journal.
jsonPayload.status_message chaîne Message de code d'état.
jsonPayload.node chaîne Nom de l'instance de nœud.
jsonPayload.host chaîne Nom de l'instance hôte.
jsonPayload.path chaîne Chemin de requête.
jsonPayload.remote_user chaîne ID utilisateur (facultatif).
severity chaîne (LogSeverity) Niveau d'entrée de journal (traduit).
timestamp chaîne (Timestamp) Heure à laquelle l'entrée a été consignée.

Les entrées de journal ne contiennent aucun champ vide ni manquant.

Configurer la collecte de métriques

Pour collecter des métriques à partir de CouchDB, vous devez créer un récepteur pour les métriques CouchDB, puis créer un pipeline pour le nouveau récepteur. Pour configurer un récepteur pour vos métriques CouchDB, spécifiez les champs suivants :

Champ Par défaut Description
type La valeur doit être égale à couchdb.
stub_status_url http://localhost:5984 URL exposée par CouchDB.
username Nom d'utilisateur utilisé pour se connecter au serveur.
password Mot de passe utilisé pour se connecter au serveur.
collection_interval 60s Une valeur time.Duration, telle que 30s ou 5m.

Métriques surveillées

Le tableau suivant fournit la liste des métriques que l'agent Ops collecte à partir de l'instance CouchDB.

Type de métrique
Genre, type
Ressources surveillées
Libellés
workload.googleapis.com/couchdb.average_request_time
GAUGEDOUBLE
gce_instance
 
workload.googleapis.com/couchdb.database.open
GAUGEINT64
gce_instance
 
workload.googleapis.com/couchdb.database.operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/couchdb.file_descriptor.open
GAUGEINT64
gce_instance
 
workload.googleapis.com/couchdb.httpd.bulk_requests
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/couchdb.httpd.requests
CUMULATIVEINT64
gce_instance
http_method
workload.googleapis.com/couchdb.httpd.responses
CUMULATIVEINT64
gce_instance
http_status_code
workload.googleapis.com/couchdb.httpd.views
CUMULATIVEINT64
gce_instance
view

Exemple de tableau de bord

Vous pouvez afficher les métriques de cette intégration à l'aide d'un exemple de tableau de bord Cloud Monitoring. Suivez les procédures décrites dans la section Installer des exemples de tableaux de bord pour importer le tableau de bord Présentation de CouchDB GCE à partir de l'exemple de bibliothèque et afficher les graphiques qui présentent vos métriques CouchDB.

Vérifier la configuration

Vous pouvez utiliser l'explorateur de journaux et l'explorateur de métriques pour vérifier que vous avez correctement configuré le récepteur CouchDB. La collecte des journaux et des métriques par l'agent Ops peut prendre une ou deux minutes.

Pour vérifier que les journaux sont ingérés, accédez à l'explorateur de journaux et exécutez la requête suivante pour afficher les journaux CouchDB :

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/couchdb")


Pour vérifier que les métriques sont ingérées, accédez à l'explorateur de métriques et exécutez la requête suivante dans l'onglet MQL.

fetch gce_instance
| metric 'workload.googleapis.com/couchdb.database.operations'
| align rate(1m)
| every 1m

Étape suivante

Pour accéder à un tutoriel pas à pas expliquant comment utiliser Ansible pour installer l'agent Ops, configurer une application tierce et installer un exemple de tableau de bord, consultez la vidéo Install the Ops Agent to troubleshoot third-party applications (Installer l'agent Ops pour résoudre les problèmes liés à des applications tierces).