integration_test/third_party_apps_test/applications/couchdb/metadata.yaml (156 lines of code) (raw):

# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. public_url: "https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent/third-party/couchdb" app_url: "https://couchdb.apache.org/" short_name: CouchDB long_name: Apache CouchDB logo_path: /stackdriver/images/couchdb.png # supplied by google technical writer description: |- The Apache CouchDB integration collects traffic-related metrics, such as the number of requests to a node and responses from the node. It also collects database metrics, such as how many are open and the number of operations. The integration collects general CouchDB and access logs and parses them into a JSON payload. The result includes fields for user, host, level, and message. configure_integration: |- This integration does not require any additional configuration with CouchDB versions prior to 3.4.0, or on Debian-based distributions. As of version 3.4.0, CouchDB behaves differently on RPM-based distributions (like RHEL or Rocky Linux). To make CouchDB work with this logging receiver's default configuration on such systems, you must configure Apache CouchDB to write to `/var/log/couchdb/couchdb.log` instead of journald. To write logs to `/var/log/couchdb/couchdb.log`, complete the following steps: 1. Create the file `/opt/couchdb/etc/local.d/ops-agent-filelog.ini`. 1. Add the following lines to the file: ```none [log] writer = file file = /var/log/couchdb/couchdb.log level = info ``` 1. Restart Apache CouchDB: ``` sudo systemctl restart couchdb ``` minimum_supported_agent_version: metrics: 2.10.0 logging: 2.11.0 supported_operating_systems: linux platforms_to_skip: # couchdb is not supported on various distros. - suse-cloud:sles-12 - suse-cloud:sles-15 - suse-cloud:sles-15-arm64 - rocky-linux-cloud:rocky-linux-8-optimized-gcp-arm64 - rocky-linux-cloud:rocky-linux-9 - rocky-linux-cloud:rocky-linux-9-optimized-gcp - rocky-linux-cloud:rocky-linux-9-arm64 - rocky-linux-cloud:rocky-linux-9-optimized-gcp-arm64 - ubuntu-os-cloud:ubuntu-2404-lts-amd64 - ubuntu-os-cloud:ubuntu-2404-lts-arm64 - ubuntu-os-cloud:ubuntu-2410-amd64 # Possible support in the future - ubuntu-os-cloud:ubuntu-minimal-2410-amd64 # Possible support in the future - ubuntu-os-cloud:ubuntu-2410-arm64 # Possible support in the future - ubuntu-os-cloud:ubuntu-minimal-2410-arm64 # Possible support in the future - debian-cloud:debian-12 - debian-cloud:debian-12-arm64 supported_app_version: ["2.3.x", "3.1 and higher"] expected_metrics: - type: workload.googleapis.com/couchdb.average_request_time value_type: DOUBLE kind: GAUGE monitored_resources: [gce_instance] - type: workload.googleapis.com/couchdb.database.open value_type: INT64 kind: GAUGE monitored_resources: [gce_instance] representative: true - type: workload.googleapis.com/couchdb.database.operations value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: operation value_regex: .* - type: workload.googleapis.com/couchdb.file_descriptor.open value_type: INT64 kind: GAUGE monitored_resources: [gce_instance] - type: workload.googleapis.com/couchdb.httpd.bulk_requests value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] - type: workload.googleapis.com/couchdb.httpd.requests value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: http_method value_regex: .* - type: workload.googleapis.com/couchdb.httpd.responses value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: http_status_code value_regex: .* - type: workload.googleapis.com/couchdb.httpd.views value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: view value_regex: .* expected_logs: - log_name: couchdb fields: - name: jsonPayload.node value_regex: couchdb type: string description: Node instance name - name: jsonPayload.path value_regex: /forbidden type: string description: Request path - name: jsonPayload.remote_user value_regex: undefined type: string description: Authenticated username for the request - name: jsonPayload.status_message value_regex: ok type: string description: Status code message - name: jsonPayload.pid type: string description: Process ID - name: jsonPayload.message type: string description: Log message - name: jsonPayload.host type: string description: Host instance name - name: jsonPayload.level type: string description: Log entry level optional: true - name: httpRequest.serverIp value_regex: "localhost:5984" type: string description: "The server's IP and port that was requested" optional: true - name: httpRequest.remoteIp value_regex: "127.0.0.1" type: string description: "IP of the client that made the request" optional: true - name: httpRequest.requestMethod value_regex: GET type: string description: "HTTP method" optional: true - name: httpRequest.requestSize type: number description: "HTTP request size" optional: true - name: httpRequest.status type: number description: "HTTP status code" optional: true - name: httpRequest.responseSize type: string description: '' optional: true - name: httpRequest.userAgent type: string description: '' optional: true - name: severity type: string description: '' configuration_options: logs: - type: couchdb fields: - name: type default: null description: This value must be `couchdb`. - name: include_paths default: '[/var/log/couchdb/couchdb.log]' description: A list of filesystem paths to read by tailing each file. A wild card (`*`) can be used in the paths; for example, `/var/log/couchdb*/*.log`. - name: exclude_paths default: null description: A list of filesystem path patterns to exclude from the set matched by `include_paths`. - name: record_log_file_path default: false description: If set to `true`, then the path to the specific file from which the log record was obtained appears in the output log entry as the value of the `agent.googleapis.com/log_file_path` label. When using a wildcard, only the path of the file from which the record was obtained is recorded. - name: wildcard_refresh_interval default: 60s description: The interval at which wildcard file paths in `include_paths` are refreshed. Given as a [time duration](https://pkg.go.dev/time#ParseDuration), for example `30s` or `2m`. This property might be useful under high logging throughputs where log files are rotated faster than the default interval. metrics: - type: couchdb fields: - name: type default: null description: This value must be `couchdb`. - name: server_status_url default: http://localhost:5984 description: The URL exposed by CouchDB. - name: username default: null description: The username used to connect to the server. - name: password default: null description: The password used to connect to the server. - name: collection_interval default: 60s description: A [time duration](https://pkg.go.dev/time#ParseDuration) value, such as `30s` or `5m`.