Apache CouchDB

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Apache CouchDB の統合では、ノードへのリクエスト数やノードからのレスポンスなど、トラフィック関連の指標が収集されます。また、開いているオペレーション数などのデータベース指標も収集します。この統合では、一般的な CouchDB ログとアクセスログを収集して JSON ペイロードを生成します。結果には、user、host、level、message のフィールドが含まれます。

CouchDB の詳細については、Apache CouchDB のドキュメントをご覧ください。

前提条件

CouchDB テレメトリーを収集するには、Ops エージェントをインストールする必要があります。

  • 指標の場合は、バージョン 2.10.0 以降をインストールします。
  • ログの場合は、バージョン 2.11.0 以降をインストールします。

このインテグレーションでは、CouchDB バージョン 2.3.x と 3.1 以降がサポートされます。

CouchDB 用に Ops エージェントを構成する

Ops エージェントの構成のガイドに従って、CouchDB インスタンスからテレメトリーを収集するために必要な要素を追加し、エージェントを再起動します。

構成の例

次のコマンドは、CouchDB のテレメトリーを収集して取り込み、Ops エージェントを再起動するための構成を作成します。

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    couchdb:
      type: couchdb
      username: admin
      password: otelp
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb

logging:
  receivers:
    couchdb:
      type: couchdb
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb
EOF

sudo service google-cloud-ops-agent restart
sleep 30

ログの収集を構成する

CouchDB からログを取り込むには、CouchDB が生成するログのレシーバを作成し、新しいレシーバのパイプラインを作成する必要があります。

couchdb ログのレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
exclude_paths include_paths の照合で除外するファイルシステム パスのパターンのリスト。
include_paths [/var/log/couchdb/couchdb.log] 各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには、/var/log/couchdb*/*.log のように、ワイルドカード(*)を使用できます。
record_log_file_path false true に設定すると、ログレコードの取得元のファイルのパスが agent.googleapis.com/log_file_path ラベルの値として出力ログエントリに表示されます。ワイルドカードを使用する場合、レコードを取得したファイルのパスのみが記録されます。
type 値には couchdb を指定してください。
wildcard_refresh_interval 60s include_paths のワイルドカード ファイルのパスの更新間隔。時間を指定します(例: 30s2m)。このプロパティは、ログファイルのローテーションがデフォルトの間隔よりも速く、ロギングのスループットが高い場合に有用です。1 秒の倍数にする必要があります。

ログの内容

logName は、構成で指定されたレシーバ ID から取得されます。LogEntry 内の詳細なフィールドは、次のとおりです。

couchdb ログの LogEntry には次のフィールドが含まれます。

フィールド タイプ 説明
httpRequest オブジェクト HTTPRequest を参照
jsonPayload.host 文字列 ホスト インスタンス名
jsonPayload.level 文字列 ログエントリ レベル
jsonPayload.message 文字列 ログメッセージ
jsonPayload.node 文字列 ノードのインスタンス名
jsonPayload.path 文字列 リクエストパス
jsonPayload.pid 文字列 プロセス ID
jsonPayload.remote_user 文字列 リクエストの認証済みユーザー名
jsonPayload.status_message 文字列 ステータス コード メッセージ
severity 文字列(LogSeverity ログエントリ レベル(変換済み)。

ログエントリに空白や欠落しているフィールドは含まれません。

指標の収集を構成する

CouchDB から指標を取り込むには、CouchDB が生成する指標のレシーバを作成してから、新しいレシーバ用のパイプラインを作成する必要があります。

couchdb 指標のレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
collection_interval 60s time.Duration 値(例: 30s5m)。
password サーバーへの接続に使用するパスワード。
server_status_url http://localhost:5984 CouchDB によって公開される URL。
type 値には couchdb を指定してください。
username サーバーへの接続に使用するユーザー名。

モニタリング対象

次の表に、Ops エージェントが CouchDB インスタンスから収集する指標の一覧を示します。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
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

ダッシュボードの例

CouchDB 指標を表示するには、グラフまたはダッシュボードが構成されている必要があります。Cloud Monitoring には、統合用のサンプル ダッシュボードのライブラリが用意されています。ここには、事前に構成されたグラフが含まれています。これらのダッシュボードのインストールについては、サンプル ダッシュボードのインストールをご覧ください。

構成を確認する

このセクションでは、CouchDB レシーバが正しく構成されていることを確認する方法について説明します。Ops エージェントがテレメトリーの収集を開始するまでに 1~2 分かかる場合があります。

ログが取り込まれていることを確認するには、ログ エクスプローラに移動し、次のクエリを実行して CouchDB のログを表示します。

resource.type="gce_instance"
log_id("couchdb")

指標が取り込まれていることを確認するには、Metrics Explorer に移動し、[MQL] タブで次のクエリを実行します。

fetch gce_instance
| metric 'workload.googleapis.com/couchdb.database.open'
| every 1m

次のステップ

Ansible を使用して Ops エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。