diff --git a/content/en/opentelemetry/integrations/mysql_metrics.md b/content/en/opentelemetry/integrations/mysql_metrics.md index 8a00a9c9c6193..cef754a8678fe 100644 --- a/content/en/opentelemetry/integrations/mysql_metrics.md +++ b/content/en/opentelemetry/integrations/mysql_metrics.md @@ -19,10 +19,93 @@ For more information, see the OpenTelemetry project documentation for the [MySQL To collect MySQL metrics with OpenTelemetry for use with Datadog: 1. Configure the [MySQL receiver][1] in your OpenTelemetry Collector configuration. -2. Ensure the OpenTelemetry Collector is [configured to export to Datadog][5]. +2. Optionally, configure the [host metrics receiver][6] if your OpenTelemetry Collector is running on the same server as your MySQL database. +3. Optionally, configure the [file log receiver][7] if your OpenTelemetry Collector is running on the same server as your MySQL database. +4. Ensure the OpenTelemetry Collector is [configured to export to Datadog][5]. + +### MySQL Receiver + +```yaml: +receivers: + mysql: + endpoint: ":" + username: "" + password: "" + collection_interval: 10s + metrics: + mysql.connection.count: + enabled: true + mysql.connection.errors: + enabled: true + mysql.commands: + enabled: true + mysql.query.slow.count: + enabled: true + +processors: + transform/metrics: + metric_statements: + - context: resource + statements: + - set(attributes["datadog.host.name"], <"HOST">) + - convert_sum_to_gauge() where metric.name == "mysql.locks" + + cumulativetodelta: {} + + deltatorate: + metrics: + - mysql.connection.count + - mysql.commands + - mysql.operations + - mysql.query.slow.count + - mysql.connection.errors + - system.network.io + +``` See the [MySQL receiver documentation][1] for detailed configuration options and requirements. +### Host metrics receiver + +```yaml +receivers: + hostmetrics: + scrapers: + load: + cpu: + metrics: + system.cpu.utilization: + enabled: true + memory: + network: +``` + +### File log receiver + +```yaml +receivers: + filelog: + include: + - + - + operators: + - type: json_parser + parse_from: body + timestamp: + parse_from: attributes.timestamp + layout: "%Y-%m-%dT%H:%M:%SZ" + +processors: + transform/logs: + log_statements: + - context: resource + statements: + - set(attributes["datadog.host.name"], <"HOST>) + - set(attributes["datadog.log.source"], "mysql") + + batch: {} +``` + ## Data collected {{< mapping-table resource="mysql.csv">}} @@ -37,3 +120,5 @@ See [OpenTelemetry Metrics Mapping][2] for more information. [2]: /opentelemetry/guide/metrics_mapping/ [4]: https://app.datadoghq.com/dash/integration/12/mysql---overview [5]: /opentelemetry/setup/collector_exporter/ +[6]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver +[7]: http://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver