Avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta función se proporciona actualmente como parte de una vista previa de conformidad con nuestras políticas de prelanzamiento.
Obtenga información valiosa completa sobre el rendimiento de SQL Server con el monitoreo de la base de datos, el análisis de consultas y las métricas de estado del sistema utilizando el recolector de New Relic Distribution of OpenTelemetry (NRDOT).
Para instalar esto a través de la UI de New Relic en su lugar, vaya a one.newrelic.com > Integrations & Agents > MSSQL (OpenTelemetry) . Siga las instrucciones en pantalla para configurar la integración. Esta página cubre únicamente la ruta de instalación de la CLI.
Sugerencia
Si utiliza SQL Server en un entorno RDS de Linux, consulte la instrumentación de Linux para RDS.
Requisitos previos
Cuenta de New Relic con una clave de licenciaválida
Extremo OTLP de New Relic para su región
Requisitos de SQL Server, necesitará:
- SQL Server 2017 o posterior
- Acceso administrativo a SQL Server (rol
sysadmino equivalente) - Conectividad de red entre el recolector y SQL Server en el puerto
1433o en un puerto personalizado sqlcmdutilidad instalada en el sistema Linux
Conectividad de red al extremo OTLP de New Relic
Inscribirse en la vista previa
Esta integración está disponible como parte del programa de vista previa pública (public preview) de New Relic. Comuníquese con el gerente de la organización para activarla desde la página de Previsualizaciones y pruebas (Previews & Trials).
Instalar NRDOT Collector
Descargue e instale el paquete NRDOT para su distribución de Linux. Reemplace <NRDOT_VERSION> con la última etiqueta de versión de la página nrdot-collector-releases.
Sugerencia
Recomendamos instalar el NRDOT Collector en el mismo host que la instancia de SQL Server para ver métricas a nivel de infraestructura para el monitoreo del rendimiento de consultas.
Crear usuario de monitoreo
Ejecute este script como usuario root para crear el usuario de monitoreo de newrelic y otorgar los permisos necesarios para recopilar métricas de SQL Server.
Cree un archivo de configuración llamado
nr-grant-permission.sql.Pegue el siguiente script de SQL para crear el usuario de monitoreo de
newrelicy reemplace<YOUR_PASSWORD>con la contraseña deseada:USE [master];GOCREATE LOGIN [newrelic] WITH PASSWORD = '<YOUR_PASSWORD>';GO-- Instance-level permissionsGRANT VIEW SERVER STATE TO [newrelic];GRANT VIEW ANY DEFINITION TO [newrelic];GRANT VIEW ANY DATABASE TO [newrelic];GO-- Grant read access privileges to all user databasesDECLARE @name SYSNAME;DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FORSELECT [name]FROM [master].[sys].[databases]WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')AND [state] = 0; -- Only online databasesOPEN db_cursor;FETCH NEXT FROM db_cursor INTO @name;WHILE @@FETCH_STATUS = 0BEGINBEGIN TRYEXEC('USE [' + @name + '];IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')BEGINCREATE USER [newrelic] FOR LOGIN [newrelic];END;GRANT VIEW DATABASE STATE TO [newrelic];');END TRYBEGIN CATCHPRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();END CATCHFETCH NEXT FROM db_cursor INTO @name;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GOEjecute el script usando
sqlcmd. Reemplace<YOUR_SA_PASSWORD>con la contraseña de administrador de SQL Server:bash$sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_PASSWORD>' -C -i nr-grant-permission.sql(Opcional) Verifique que el usuario se haya creado correctamente con los permisos correctos:
bash$sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_PASSWORD>' -C -Q "SELECT sp.name AS [User], p.permission_name AS [Permission_Granted] FROM sys.server_permissions p JOIN sys.server_principals sp ON p.grantee_principal_id = sp.principal_id WHERE sp.name = 'newrelic';"Salida esperada:
bash$User Permission_Granted$-------------------------------------------------------------------------------------$newrelic CONNECT SQL$newrelic VIEW ANY DEFINITION$newrelic VIEW ANY DATABASE$newrelic VIEW SERVER STATEEsta salida confirma que su usuario se ha creado correctamente con los permisos de nivel de servidor requeridos.
Sugerencia
Para administrar de forma segura la información confidencial, como las credenciales de la base de datos, almacénelas en herramientas de gestión de secretos.
Configurar el Colector NRDOT
Seleccione la opción de configuración según sus requisitos de monitoreo:
Cree un archivo de configuración llamado
mssql-config.yaml:bash$sudo nano /etc/nrdot-collector/mssql-config.yamlAgregue la siguiente configuración al archivo
mssql-config.yamlcreado en el paso anterior:configuración completa
Esta configuración mínima se centra solo en el monitoreo de la base de datos sin métricas de infraestructura del host. Para habilitar el monitoreo con todas las características, consulte la referencia de configuración.
mssql-config.yaml1receivers:2nrsqlserver:3collection_interval: 15s4# Direct connection to SQL Server5username: newrelic6password: YOUR_PASSWORD7server: sqlserver.example.com8port: 1433910# Enable comprehensive database metrics11metrics:12sqlserver.database.count:13enabled: true14sqlserver.database.io:15enabled: true16sqlserver.database.latency:17enabled: true18sqlserver.database.operations:19enabled: true20sqlserver.database.tempdb.space:21enabled: true22sqlserver.database.tempdb.version_store.size:23enabled: true24sqlserver.deadlock.rate:25enabled: true26sqlserver.os.wait.duration:27enabled: true28sqlserver.processes.blocked:29enabled: true30sqlserver.memory.grants.pending.count:31enabled: true32sqlserver.database.file.size:33enabled: true34sqlserver.memory.area:35enabled: true3637# Enable top query and query sample log collection38events:39db.server.query_sample:40enabled: true41db.server.top_query:42enabled: true4344# Top query collection configuration45top_query_collection:46lookback_time: 60s47max_query_sample_count: 100048top_query_count: 25049collection_interval: 60s5051collect_full_query_text: true52allowed_comment_keys:53- nr_service_guid5455# Query sample collection configuration56query_sample_collection:57max_rows_per_query: 1005859processors:60memory_limiter:61check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}62limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}63spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}6465batch:6667exporters:68otlp:69endpoint: https://otlp.nr-data.net:431870headers:71api-key: YOUR_LICENSE_KEY72tls:73insecure: false74compression: gzip7576service:77telemetry:78metrics:79level: none8081pipelines:82metrics:83receivers: [nrsqlserver]84processors: [memory_limiter, batch]85exporters: [otlp]8687logs:88receivers: [nrsqlserver]89processors: [memory_limiter, batch]90exporters: [otlp]
Actualizar la configuración de NRDOT Collector
Después de configurar su archivo YAML con las entradas interactivas anteriores, complete la configuración de NRDOT Collector:
Edite el archivo de configuración del servicio:
bash$sudo nano /etc/nrdot-collector/nrdot-collector.confActualice la ruta de configuración para que apunte a su nuevo archivo
mssql-config.yaml:bash$OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"(Opcional) Valide la configuración del Collector de NRDOT:
bash$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yamlSugerencia
Para correlacionar el rendimiento de su aplicación con las operaciones de la base de datos, puede configurar la identificación del servicio de base de datos. Para obtener más información, consulte la guía de configuración de identificación del servicio de base de datos.
Reiniciar NRDOT Collector
Después de actualizar su configuración, reinicie el servicio NRDOT Collector:
$sudo systemctl restart nrdot-collectorSugerencia
Siempre reinicie el servicio NRDOT Collector después de realizar cambios de configuración para garantizar que los nuevos ajustes surtan efecto.
Encuentra y utiliza tus datos
Una vez que sus datos se estén recopilando, puede acceder al monitoreo integral de bases de datos SQL Server a través de la UI de New Relic.
Para encontrar su entidad de base de datos SQL Server en New Relic:
Vaya a one.newrelic.com > All capabilities > Databases.
En el menú desplegable Entity type, seleccione MSSQL instance y luego haga clic en Apply.
Seleccione su base de datos SQL Server de la lista de entidades.
Después de configurar el monitoreo de SQL Server con NRDOT, puede:
- Crea dashboards personalizados para visualizar las métricas de tu base de datos
- Configura alertas para umbrales críticos de rendimiento de la base de datos
- Explore los datos con las capacidades de consulta de New Relic
Documentación relacionada
Configurar la correlación de APM y base de datos
Aprenda a correlacionar el rendimiento de la aplicación con las operaciones de la base de datos en New Relic.
Resolución de problemas
Aprenda a solucionar problemas de la configuración de monitoreo de MSSQL Windows en New Relic.
Referencia de métricas
Obtenga información sobre las métricas disponibles recopiladas por NRDOT Collector.