diff --git a/internal/component/database_observability/mysql/collector/connection_info.go b/internal/component/database_observability/mysql/collector/connection_info.go index 329877857e0..0e7f286e003 100644 --- a/internal/component/database_observability/mysql/collector/connection_info.go +++ b/internal/component/database_observability/mysql/collector/connection_info.go @@ -16,7 +16,7 @@ const ConnectionInfoName = "connection_info" var ( rdsRegex = regexp.MustCompile(`(?P[^\.]+)\.([^\.]+)\.(?P[^\.]+)\.rds\.amazonaws\.com`) - azureRegex = regexp.MustCompile(`(?P[^\.]+)\.mysql\.database\.azure\.com`) + azureRegex = regexp.MustCompile(`(?P[^\.]+)\.(?:privatelink\.)?mysql\.database\.azure\.com`) ) type ConnectionInfoArguments struct { diff --git a/internal/component/database_observability/mysql/collector/connection_info_test.go b/internal/component/database_observability/mysql/collector/connection_info_test.go index 7b0ba3b576e..48b2573f515 100644 --- a/internal/component/database_observability/mysql/collector/connection_info_test.go +++ b/internal/component/database_observability/mysql/collector/connection_info_test.go @@ -74,6 +74,12 @@ func TestConnectionInfo(t *testing.T) { engineVersion: "8.0.32", expectedMetrics: fmt.Sprintf(baseExpectedMetrics, "products-db", "mysql", "8.0.32", "unknown", "azure", "unknown"), }, + { + name: "Azure privatelink dsn", + dsn: "user:pass@tcp(products-db.privatelink.mysql.database.azure.com:3306)/schema", + engineVersion: "8.0.32", + expectedMetrics: fmt.Sprintf(baseExpectedMetrics, "products-db", "mysql", "8.0.32", "unknown", "azure", "unknown"), + }, } for _, tc := range testCases { diff --git a/internal/component/database_observability/postgres/collector/connection_info.go b/internal/component/database_observability/postgres/collector/connection_info.go index 3e1930fac02..f23b078b6bc 100644 --- a/internal/component/database_observability/postgres/collector/connection_info.go +++ b/internal/component/database_observability/postgres/collector/connection_info.go @@ -14,7 +14,7 @@ const ConnectionInfoName = "connection_info" var ( rdsRegex = regexp.MustCompile(`(?P[^\.]+)\.([^\.]+)\.(?P[^\.]+)\.rds\.amazonaws\.com`) - azureRegex = regexp.MustCompile(`(?P[^\.]+)\.postgres\.database\.azure\.com`) + azureRegex = regexp.MustCompile(`(?P[^\.]+)\.(?:privatelink\.)?postgres\.database\.azure\.com`) ) var engineVersionRegex = regexp.MustCompile(`(?P^[1-9]+\.[1-9]+)(?P.*)?$`) diff --git a/internal/component/database_observability/postgres/collector/connection_info_test.go b/internal/component/database_observability/postgres/collector/connection_info_test.go index bc9a1dcc792..8d7c269d819 100644 --- a/internal/component/database_observability/postgres/collector/connection_info_test.go +++ b/internal/component/database_observability/postgres/collector/connection_info_test.go @@ -76,6 +76,12 @@ func TestConnectionInfo(t *testing.T) { engineVersion: "15.4", expectedMetrics: fmt.Sprintf(baseExpectedMetrics, "products-db", "postgres", "15.4", "unknown", "azure", "unknown"), }, + { + name: "Azure privatelink dsn", + dsn: "postgres://user:pass@products-db.privatelink.postgres.database.azure.com:5432/mydb", + engineVersion: "15.4", + expectedMetrics: fmt.Sprintf(baseExpectedMetrics, "products-db", "postgres", "15.4", "unknown", "azure", "unknown"), + }, } for _, tc := range testCases {