integration_test/third_party_apps_test/applications/mysql5.7/metadata.yaml (346 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/mysql" app_url: "http://www.mysql.com/" short_name: MySQL long_name: MySQL logo_path: /images/launcher/logos/mysql.png # supplied by google technical writer description: |- The MySQL/MariaDB integration collects performance metrics related to InnoDB, the buffer pool, and various other operations. It also collects general, error, and slow-query logs and parses them into a JSON payload. Error logs are parsed for their error code and subsystem. Slow-query logs are parsed into key-value pairs that describe the performance of a query, including query time and rows examined. configure_integration: |- MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS). To collect logs and metrics for MariaDB, use the `mysql` receivers. The `mysql` receiver connects by default to a local MySQL/MariaDB server using a Unix socket and Unix authentication as the `root` user. minimum_supported_agent_version: metrics: 2.33.0 logging: 2.33.0 supported_operating_systems: linux platforms_to_skip: # MySQL5.7 is not supported on various distros. - suse-cloud:sles-12 - suse-cloud:sles-15 - suse-cloud:sles-15-arm64 - suse-sap-cloud:sles-12-sp5-sap - rocky-linux-cloud:rocky-linux-8 - rocky-linux-cloud:rocky-linux-8-optimized-gcp - 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 - debian-cloud:debian-11 - debian-cloud:debian-12 - debian-cloud:debian-12-arm64 - ml-images:common-gpu-debian-11-py310 - ubuntu-os-cloud:ubuntu-2004-lts - ubuntu-os-cloud:ubuntu-2004-lts-arm64 - ubuntu-os-cloud:ubuntu-2204-lts - ubuntu-os-cloud:ubuntu-2204-lts-arm64 - ubuntu-os-cloud:ubuntu-2404-lts-amd64 - ubuntu-os-cloud:ubuntu-2404-lts-arm64 - ubuntu-os-cloud:ubuntu-2410-amd64 - ubuntu-os-cloud:ubuntu-minimal-2410-amd64 - ubuntu-os-cloud:ubuntu-2410-arm64 - ubuntu-os-cloud:ubuntu-minimal-2410-arm64 supported_app_version: ["5.7", "8.0"] expected_metrics: - type: workload.googleapis.com/mysql.buffer_pool_data_pages value_type: INT64 kind: GAUGE monitored_resources: [gce_instance] labels: - name: status value_regex: dirty|clean - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.buffer_pool_limit value_type: INT64 kind: GAUGE monitored_resources: [gce_instance] labels: - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.buffer_pool_operations value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: operation value_regex: read_ahead|read_ahead_evicted|read_ahead_rnd|read_requests|reads|wait_free|write_requests - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.buffer_pool_page_flushes value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.buffer_pool_pages value_type: DOUBLE kind: GAUGE monitored_resources: [gce_instance] labels: - name: kind value_regex: data|free|misc - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.buffer_pool_size value_type: DOUBLE kind: GAUGE monitored_resources: [gce_instance] labels: - name: kind value_regex: clean|dirty - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.commands value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: command value_regex: delete|insert|select|update - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.double_writes value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: kind value_regex: writes|pages_written - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.handlers value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: kind value_regex: commit|delete|discover|lock|mrr_init|prepare|read_first|read_key|read_last|read_next|read_prev|read_rnd|read_rnd_next|rollback|savepoint|savepoint_rollback|update|write - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.locks value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: kind value_regex: immediate|waited - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.log_operations value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: operation value_regex: requests|waits|writes - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.operations value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: operation value_regex: fsyncs|reads|writes - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.page_operations value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: operation value_regex: created|read|written - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.replica.time_behind_source value_type: INT64 kind: GAUGE monitored_resources: [gce_instance] labels: - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.replica.sql_delay value_type: INT64 kind: GAUGE monitored_resources: [gce_instance] labels: - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.row_locks value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: kind value_regex: time|waits - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.row_operations value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: operation value_regex: deleted|inserted|read|updated - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.sorts value_type: INT64 kind: CUMULATIVE monitored_resources: [gce_instance] labels: - name: kind value_regex: merge_passes|range|rows|scan - name: instrumentation_source value_regex: agent.googleapis.com/mysql - type: workload.googleapis.com/mysql.threads value_type: DOUBLE kind: GAUGE monitored_resources: [gce_instance] labels: - name: kind value_regex: cached|connected|created|running - name: instrumentation_source value_regex: agent.googleapis.com/mysql representative: true expected_logs: # Mysql 5.7 error logs go to syslog by default # - log_name: mysql_error # fields: # - name: jsonPayload.level # value_regex: System # type: string # description: 'Log entry level' # optional: true # - name: jsonPayload.message # value_regex: .*InnoDB initialization has started.* # type: string # description: 'Log message' # - name: jsonPayload.subsystem # value_regex: InnoDB # type: string # description: 'MySQL subsystem where the log originated' # - name: jsonPayload.tid # type: number # description: 'Thread ID where the log originated' # - name: jsonPayload.errorCode # type: string # description: 'MySQL error code associated with the log' # - name: severity # type: string # description: '' - log_name: mysql_general fields: - name: jsonPayload.message value_regex: .*select table_catalog, table_schema, table_name from information_schema.tables.* type: string description: 'Log of the database action' - name: jsonPayload.command value_regex: Query type: string description: 'Type of database action being logged' - name: jsonPayload.tid type: number description: 'Thread ID where the log originated' - name: severity type: string description: '' - log_name: mysql_slow fields: - name: jsonPayload.message value_regex: (?s).*select table_catalog, table_schema, table_name from information_schema.tables.* # The (?s) part will make the . match with newline as well. See https://github.com/google/re2/blob/main/doc/syntax.txt#L65,L68 type: string description: 'Full text of the query' - name: jsonPayload.user value_regex: root type: string description: 'User that executed the query' - name: jsonPayload.database value_regex: root type: string description: 'Database where the query was executed' - name: jsonPayload.host value_regex: localhost type: string description: 'Host of the database instance' - name: jsonPayload.ipAddress type: string description: 'Address of the database instance' optional: true - name: jsonPayload.tid type: number description: 'Thread ID where the query was logged' - name: jsonPayload.queryTime type: number description: 'The statement execution time in seconds' - name: jsonPayload.lockTime type: number description: 'The time to acquire locks in seconds' - name: jsonPayload.rowsSent type: number description: 'The number of rows sent to the client' - name: jsonPayload.rowsExamined type: number description: 'The number of rows examined by the server layer' - name: severity type: string description: '' - name: jsonPayload.level type: string description: Log entry level optional: true configuration_options: logs: - type: mysql_error fields: - name: type default: null description: This value must be `mysql_error`. - name: include_paths default: '[/var/log/mysqld.log, /var/log/mysql/mysqld.log, /var/log/mysql/error.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/mysql/*.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. - type: mysql_general fields: - name: type default: null description: This value must be `mysql_general`. - name: include_paths default: '[/var/lib/mysql/${HOSTNAME}.log]' description: A list of filesystem paths to read by tailing each file. A wild card (`*`) can be used in the paths. - 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. - type: mysql_slow fields: - name: type default: null description: This value must be `mysql_slow`. - name: include_paths default: '[/var/lib/mysql/${HOSTNAME}-slow.log]' description: A list of filesystem paths to read by tailing each file. A wild card (`*`) can be used in the paths. - 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: mysql fields: - name: type default: null description: This value must be `mysql`. - name: endpoint default: /var/run/mysqld/mysqld.sock description: The `hostname:port` or Unix socket path starting with `/` used to connect to the MySQL server. - name: username default: root 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`.