integration_test/third_party_apps_test/applications/varnish/metadata.yaml (177 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.
short_name: Varnish
app_url: "https://varnish-cache.org/"
long_name: Varnish HTTP Cache
logo_path: /images/partners/varnish-logo.png # supplied by google technical writer
description: |-
The Varnish integration collects cache and session metrics.
It monitors the number of objects entering and exiting the cache,
as well as the number of sessions and backend connections.
The integration also collects Varnish logs and parses them
into a standardized JSON payload.
supported_app_version: ["6.x", "7.0.x"]
configure_integration: |-
The Varnish logging processor processes logs using
[varnishncsa](https://varnish-cache.org/docs/6.0/reference/varnishncsa.html).
Varnish can enable varnishncsa logging by following this [guide](https://docs.varnish-software.com/tutorials/enabling-logging-with-varnishncsa/),
depending on the operating system.
By default, logs are written to `/var/log/varnish/varnishncsa.log`. If you
choose another destination, you must update the receiver configuration.
Logs are expected to be in the default format, and a log rotation should be
set up.
expected_metrics:
- type: workload.googleapis.com/varnish.backend.connection.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
labels:
- name: kind
value_regex: .*
representative: true
- type: workload.googleapis.com/varnish.backend.request.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
- type: workload.googleapis.com/varnish.cache.operation.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
labels:
- name: operation
value_regex: .*
- type: workload.googleapis.com/varnish.client.request.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
labels:
- name: state
value_regex: .*
- type: workload.googleapis.com/varnish.client.request.error.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
labels:
- name: status_code
value_regex: .*
- type: workload.googleapis.com/varnish.object.count
value_type: INT64
kind: GAUGE
monitored_resources: [gce_instance]
- type: workload.googleapis.com/varnish.object.expired
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
- type: workload.googleapis.com/varnish.object.moved
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
- type: workload.googleapis.com/varnish.object.nuked
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
- type: workload.googleapis.com/varnish.session.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
labels:
- name: kind
value_regex: .*
- type: workload.googleapis.com/varnish.thread.operation.count
value_type: INT64
kind: CUMULATIVE
monitored_resources: [gce_instance]
labels:
- name: operation
value_regex: .*
configuration_options:
logs:
- type: varnish
fields:
- name: type
default: null
description: This value must be `varnish`.
- name: include_paths
default: '[/var/log/varnish/varnishncsa.log]'
description: A `varnishncsa` default log path to read by tailing each file.
- 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: varnish
fields:
- name: type
default: null
description: This value must be `varnish`.
- name: cache_dir
default: null
description: This specifies the cache dir instance name to use when collecting metrics. If not specified, defaults to the host.
- name: exec_dir
default: null
description: The directory where the `varnishadm` and `varnishstat` executables are located. If not provided, relies on the executables being in the user's `PATH`.
- name: collection_interval
default: 60s
description: A [time duration](https://pkg.go.dev/time#ParseDuration) value, such as `30s` or `5m`.
minimum_supported_agent_version:
metrics: 2.15.0
logging: 2.16.0
supported_operating_systems: linux
platforms_to_skip:
# varnish is not supported on sles
- suse-cloud:sles-12
- suse-cloud:sles-15
- suse-cloud:sles-15-arm64
expected_logs:
- log_name: varnish
fields:
- name: httpRequest.remoteIp
value_regex: 127.0.0.1
type: string
description: The IP address (IPv4 or IPv6) of the client that issued the HTTP request
optional: true
- name: httpRequest.requestMethod
value_regex: GET
type: string
description: HTTP method
optional: true
- name: jsonPayload.host
type: string
description: Contents of the Host header
optional: true
- name: jsonPayload.user
type: string
description: Authenticated username for the request
optional: true
- name: httpRequest.requestUrl
value_regex: .*/forbidden.html
type: string
description: Request URL (typically just the path part of the URL
optional: true
- name: httpRequest.protocol
value_regex: HTTP/1.1
type: string
description: Protocol used for the request
optional: true
- name: httpRequest.status
type: string
description: HTTP status code
optional: true
- name: httpRequest.responseSize
type: string
description: Response size
optional: true
- name: httpRequest.referer
type: string
description: Contents of the `Referer` header
optional: true
- name: httpRequest.userAgent
type: string
description: Contents of the `User-Agent` header
optional: true
- name: severity
type: string
description: ''
public_url: https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent/third-party/varnish