Menu

This is documentation for the next version of Alloy. For the latest stable release, go to the latest version.

Experimental Open source

database_observability.mysql

EXPERIMENTAL: This is an experimental component. Experimental components are subject to frequent breaking changes, and may be removed with no equivalent replacement. To enable and use an experimental component, you must set the stability.level flag to experimental.

Usage

alloy
database_observability.mysql "<LABEL>" {
  data_source_name = <DATA_SOURCE_NAME>
  forward_to       = [<LOKI_RECEIVERS>]
}

Arguments

You can use the following arguments with database_observability.mysql:

NameTypeDescriptionDefaultRequired
data_source_namesecretData Source Name for the MySQL server to connect to.yes
forward_tolist(LogsReceiver)Where to forward log entries after processing.yes
collect_intervaldurationHow frequently to collect information from database."1m"no
disable_collectorslist(string)A list of collectors to disable from the default set.no
disable_query_redactionboolCollect unredacted SQL query text including parameters.falseno
enable_collectorslist(string)A list of collectors to enable on top of the default set.no
explain_plan_collect_intervaldurationHow frequently to collect explain plan information from database."1m"no
explain_plan_per_collect_ratiofloatRatio of explain plan queries to collect per collect interval.1.0no
explain_plan_initial_lookbackdurationHow far back to look for explain plan queries on the first collection interval."24h"no
locks_collect_intervaldurationHow frequently to collect locks information from database."30s"no
locks_thresholddurationThreshold for locks to be considered slow. If a lock exceeds this duration, it will be logged."1s"no
setup_consumers_collect_intervaldurationHow frequently to collect performance_schema.setup_consumers information from the database."1h"no

The following collectors are configurable:

NameDescriptionEnabled by default
query_tablesCollect query table information.yes
schema_tableCollect schemas and tables from information_schema.yes
query_sampleCollect query samples.no
setup_consumersCollect enabled performance_schema.setup_consumers.yes
locksCollect queries that are waiting/blocking other queries.no
explain_planCollect explain plan information.no

Blocks

The database_observability.mysql component doesn’t support any blocks. You can configure this component with arguments.

Example

alloy
database_observability.mysql "orders_db" {
  data_source_name = "user:pass@tcp(mysql:3306)/"
  forward_to = [loki.write.logs_service.receiver]
}

prometheus.scrape "orders_db" {
  targets = database_observability.mysql.orders_db.targets
  honor_labels = true // required to keep job and instance labels
  forward_to = [prometheus.remote_write.metrics_service.receiver]
}

prometheus.remote_write "metrics_service" {
  endpoint {
    url = sys.env("<GRAFANA_CLOUD_HOSTED_METRICS_URL>")
    basic_auth {
      username = sys.env("<GRAFANA_CLOUD_HOSTED_METRICS_ID>")
      password = sys.env("<GRAFANA_CLOUD_RW_API_KEY>")
    }
  }
}

loki.write "logs_service" {
  endpoint {
    url = sys.env("<GRAFANA_CLOUD_HOSTED_LOGS_URL>")
    basic_auth {
      username = sys.env("<GRAFANA_CLOUD_HOSTED_LOGS_ID>")
      password = sys.env("<GRAFANA_CLOUD_RW_API_KEY>")
    }
  }
}

Replace the following:

  • <GRAFANA_CLOUD_HOSTED_METRICS_URL>: The URL for your Grafana Cloud hosted metrics.
  • <GRAFANA_CLOUD_HOSTED_METRICS_ID>: The user ID for your Grafana Cloud hosted metrics.
  • <GRAFANA_CLOUD_RW_API_KEY>: Your Grafana Cloud API key.
  • <GRAFANA_CLOUD_HOSTED_LOGS_URL>: The URL for your Grafana Cloud hosted logs.
  • <GRAFANA_CLOUD_HOSTED_LOGS_ID>: The user ID for your Grafana Cloud hosted logs.

Compatible components

database_observability.mysql can accept arguments from the following components:

database_observability.mysql has exports that can be consumed by the following components:

Note

Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.