feat(mysqlnode-otel): Complete OpenTelemetry mysqlreceiver support in Staging#3034
Conversation
entityBot
left a comment
There was a problem hiding this comment.
We don't think these changes require an API Review Board (ARB) review, so it is not required to merge this PR. Note that all API changes do require one: if you believe this PR needs an ARB review, please create the ticket and add the ARB:pending label. Reach #api-review-board in case of doubts.
| @@ -0,0 +1,60 @@ | |||
| relationships: | |||
| # OpenTelemetry-instrumented application -> MySQL node, from distributed tracing spans. | |||
There was a problem hiding this comment.
Currently, we are only establishing synthesis relationships from Native APM to OpenTelemetry (OTel) DB receivers. Note that the Query Comments feature is exclusively supported by native APM agents.
For context on how these are mapped, you can refer to the existing synthesis rules and their tracking candidates for Oracle and MSSQL.
There was a problem hiding this comment.
Thanks for pointing out @spathlavath , removed the OTEL APM file.
…datastore spans Replace the OTLP-filtered OTEL-APPLICATION->MYSQLNODE rule with an APM-APPLICATION->MYSQLNODE staging rule that resolves the MySQL node from native-APM datastore distributed-tracing spans (db.system=mysql + server.address/server.port) via the host+port candidate, mirroring APM-APPLICATION-to-INFRA-MSSQLINSTANCE.stg.yml. Native APM is the source that powers the Query Comments feature. Candidate and definition comments updated accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
entityBot
left a comment
There was a problem hiding this comment.
We don't think these changes require an API Review Board (ARB) review, so it is not required to merge this PR. Note that all API changes do require one: if you believe this PR needs an ARB review, please create the ticket and add the ARB:pending label. Reach #api-review-board in case of doubts.
Completes OpenTelemetry Collector
mysqlreceiversupport for the existingINFRA-MYSQLNODEentity. All changes are staging-only (.stgoverrides) — production behavior is unchanged until a later promotion.What changed
entity-types/infra-mysqlnode/definition.stg.yml(new — full staging override)server.address/server.porttags (used by the new relationship lookup).event.nameprefixdb.server.) — one for OTel-contribmysqlreceiver, one for thenewrelic-forksnrmysqlreceiver. Theotel.library.namecondition disambiguates from other DB receivers that also emitdb.server.*.mysql.instance.endpointidentifier, so an instance is one entity regardless of signal.golden_metrics.stg.yml— fixedbufferPoolDataPagesfacet (state→kind); added OTel queries for connected/running threads, max used connections, buffer-pool pages; added OTel-onlybufferPoolUsageBytesanduptime. Counter metrics staynewRelic-only (cumulative/monotonic can't take value functions cleanly). At the 10-metric schema cap.opentelemetry_dashboard.stg.json— rebuilt single-page dashboard covering the receiver's default metrics plus a Query Performance section from the log events. Widgets on disabled-by-default metrics are labeled "requires enabling".tests/Log.stg.json(new) — sampledb.server.top_query/db.server.query_samplepayloads matching the new log rules.relationships/candidates/MYSQLNODE.stg.yml(new) — indexes MYSQLNODE entities byserver.address+server.port(mirrorsMSSQLDBINSTANCE).relationships/synthesis/OTEL-APPLICATION-to-INFRA-MYSQLNODE.stg.yml(new) —CALLSrelationship from OTel-instrumented apps to the MySQL node via distributed-tracing spans (covers bothdb.systemanddb.system.name = mysql). The existing native-APM relationship is untouched.All metric/attribute names verified against the receiver's
metadata.yaml.Validation
npm --prefix validator run checkpasses (schemas + synthesis rules + relationship rules).