Apache CouchDB

La integración de CouchDB de Apache recopila métricas relacionadas con el tráfico, como la cantidad de solicitudes a un nodo y las respuestas del nodo. También recopila métricas de la base de datos, como cuántas están abiertas y la cantidad de operaciones. La integración recopila registros de acceso y de CouchDB generales y los analiza en una carga útil de JSON. El resultado incluye campos para el usuario, el host, el nivel y el mensaje.

Para obtener más información sobre Apache CouchDB, consulta couchdb.apache.org/.

Requisitos previos

Para recopilar y transferir registros y métricas de CouchDB, debes instalar el Agente de operaciones versión 2.11.0 o posterior.

Este receptor es compatible con las versiones 2.3.x, 3.1 y posteriores de Apache CouchDB.

Configura el agente de operaciones para CouchDB

Mediante la guía Configura el Agente de operaciones, agrega los elementos necesarios para recopilar registros y métricas de tus instancias de CouchDB y reinicia el agente.

Configuración de ejemplo

El siguiente comando crea el archivo de configuración a fin de recopilar y transferir registros y métricas para CouchDB, y reinicia el Agente de operaciones en 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

Configura la recopilación de registros

A fin de transferir registros desde CouchDB, debes crear receptores para los registros que CouchDB produce y, luego, crear una canalización para los receptores nuevos. A fin de configurar un receptor para los registros de couchdb, especifica los siguientes campos:

Campo Predeterminada Descripción
type El valor debe ser couchdb.
include_paths [/var/log/couchdb/couchdb.log] Una lista de rutas de acceso del sistema de archivos que se leerán mediante la visualización del final de cada archivo. Se puede usar un comodín (*) en las rutas. Por ejemplo, /var/log/couchdb*/*.log.
exclude_paths Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths.
wildcard_refresh_interval 60s El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths. Se proporciona como una duración, por ejemplo, 30s o 2m. Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado. Debe ser un múltiplo de 1 s.

¿Qué se registra?

Los logName de los registros couchdb derivan de los ID de receptor especificados en la configuración. Los campos detallados dentro de LogEntry son los siguientes.

Campo Tipo Descripción
httpRequest.serverIp string Dirección IP del servidor.
httpRequest.remoteIp string Dirección IP de cliente.
httpRequest.requestMethod string Método HTTP.
httpRequest.responseSize string (int64) Tamaño de la respuesta
httpRequest.status número Código de estado HTTP.
jsonPayload.remote_user string Nombre de usuario autenticado para la solicitud.
jsonPayload.pid número ID de proceso.
jsonPayload.message string Mensaje del registro.
jsonPayload.status_message string mensaje de código de estado.
jsonPayload.node string nombre de la instancia de nodo.
jsonPayload.host string nombre de instancia del host.
jsonPayload.path string ruta de la solicitud.
jsonPayload.remote_user string id de usuario (opcional).
severity string (LogSeverity) Nivel de entrada de registro (traducido).
timestamp string (Timestamp) Hora en la que se registró la entrada.

Las entradas de registro no contienen ningún campo en blanco o faltante.

Configura la recopilación de métricas

A fin de recopilar métricas de CouchDB, debes crear un receptor para las métricas de CouchDB y, luego, crear una canalización para el receptor nuevo. A fin de configurar un receptor para las métricas de CouchDB, especifica los siguientes campos:

Campo Predeterminada Descripción
type El valor debe ser couchdb.
stub_status_url http://localhost:5984 La URL que CouchDB expone.
username El nombre de usuario usado para conectarse al servidor.
password La contraseña usada para conectarse al servidor.
collection_interval 60s Un valor time.Duration, como 30s o 5m.

Qué se supervisa

En la siguiente tabla, se proporciona una lista de métricas que el agente de operaciones recopila de la instancia de CouchDB.

Tipo de métrica 
Categoría, tipo
Recursos supervisados
Etiquetas
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

Panel de muestra

Puedes ver las métricas de esta integración mediante un panel de Cloud Monitoring de muestra. Completa los procedimientos que se indican en Cómo instalar paneles de muestra para importar el panel Descripción general de CouchDB GCE desde la Biblioteca de muestra y ver los gráficos que muestran tus métricas de Apache CouchDB.

Verifica la configuración

Puedes usar el Explorador de registros y el Explorador de métricas para verificar que configuraste de forma correcta el receptor de CouchDB. El Agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar los registros y las métricas.

Para verificar que se transfieran los registros, ve a Explorador de registros y ejecuta la siguiente consulta a fin de ver los registros de CouchDB:

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


Para verificar que las métricas se transfieran, ve a Explorador de métricas y ejecuta la siguiente consulta en la pestaña MQL.

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

¿Qué sigue?

Para obtener una explicación sobre cómo usar Ansible a fin de instalar el agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, consulta el video Instala el agente de operaciones para solucionar problemas de apps de terceros.