• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Monitoreo de Microsoft SQL Server con NRDOT

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.

New Relic ahora permite a su equipo monitorear el rendimiento de su base de datos Microsoft SQL Server utilizando New Relic Distribution of OpenTelemetry (NRDOT) con las capacidades de monitoreo de bases de datos de New Relic. Esta integración proporciona información detallada sobre las métricas de la base de datos, el rendimiento de las consultas y el estado del sistema mediante el recopilador NRDOT.

Este enfoque basado en NRDOT complementa nuestra actual On-Host Integration (OHI) al aprovechar los estándares de OpenTelemetry para el monitoreo de bases de datos, lo que facilita la integración con su stack de observabilidad existente.

Requisitos previos

Antes de comenzar, cerciorar de tener lo siguiente:

  • Clave de licenciade New Relic válida

  • Versiones de base de datos compatibles: SQL Server 2017 o posterior

  • Configuración de la base de datos SQL Server:

    • Acceso administrativo a su instancia de SQL Server (rol sysadmin o equivalente)
    • Microsoft SQL Server que admite instancias administradas en las instalaciones
    • Conectividad de red entre el colector NRDOT y su SQL Server
    • SQL Server Management Studio (SSMS) o la utilidad sqlcmd
    • Nombre de host o dirección IP del servidor
    • Número de puerto (generalmente 1433) o puerto personalizado
    • Autenticación de dominio de Windows o de SQL Server
    • Preferencia de SSL
  • Requisitos del sistema:

    • Sistema Windows o Linux para ejecutar el colector NRDOT
    • Conectividad de red al endpoint OTLP de New Relic

Configurar el NRDOT Collector para el monitoreo de Microsoft SQL Server

Puede utilizar el colector NRDOT para monitorear sus bases de datos de Microsoft SQL Server. El colector NRDOT es una distribución preconfigurada que incluye componentes específicos de New Relic.

Para instalar y configurar el NRDOT Collector, siga estos pasos:

Configurar el colector NRDOT

Instale el colector según su sistema operativo y arquitectura.

Importante

Se recomienda instalar el NRDOT Collector en el mismo host que su instancia de SQL Server para ver métricas a nivel de infraestructura para el monitoreo del rendimiento de consultas.

Configurar el usuario de la base de datos

Ejecute el siguiente script como root user/sysadmin para crear el usuario de monitoreo de newrelic y otorgar permisos globales de lectura.

Configurar el Colector NRDOT

Reemplace su config.yaml con el siguiente contenido:

  • Ventanas: C:\Program Files (x86)\NRDOT Collector Host\config.yaml

  • Linux: /etc/nrdot-collector-host/config.yaml

    Importante

    Si es un usuario actual de NRDOT Collector, asegúrese de fusionar la configuración anterior con su archivo config.yaml existente. Esto incluye agregar los nuevos receptores, procesadores y exportadores para el monitoreo de bases de datos MSSQL, mientras conserva sus configuraciones actuales.

    # NRDOT Collector Configuration for New Relic SQL Server Integration
    # SQL Server On-Premises/VM Configuration
    extensions:
    health_check:
    receivers:
    otlp:
    protocols:
    grpc:
    http:
    hostmetrics:
    # Default collection interval is 60s. Lower if you need finer granularity.
    collection_interval: 60s
    scrapers:
    cpu:
    metrics:
    system.cpu.time:
    enabled: false
    system.cpu.utilization:
    enabled: true
    load:
    memory:
    metrics:
    system.memory.utilization:
    enabled: true
    paging:
    metrics:
    system.paging.utilization:
    enabled: false
    system.paging.faults:
    enabled: false
    filesystem:
    metrics:
    system.filesystem.utilization:
    enabled: true
    disk:
    metrics:
    system.disk.merged:
    enabled: false
    system.disk.pending_operations:
    enabled: false
    system.disk.weighted_io_time:
    enabled: false
    network:
    metrics:
    system.network.connections:
    enabled: false
    # Uncomment to enable process metrics, which can be noisy but valuable.
    # processes:
    # process:
    # metrics:
    # process.cpu.utilization:
    # enabled: true
    # process.cpu.time:
    # enabled: false
    filelog:
    include:
    - /var/log/alternatives.log
    - /var/log/cloud-init.log
    - /var/log/auth.log
    - /var/log/dpkg.log
    - /var/log/syslog
    - /var/log/messages
    - /var/log/secure
    - /var/log/yum.log
    newrelicsqlserver:
    hostname: "<YOUR_DB_HOST>"
    port: "<YOUR_DB_PORT>"
    username: "<USERNAME>"
    password: "<PASSWORD>"
    monitored_databases: []
    # timeout: 30s
    # collection_interval: 15s
    # query_monitoring_fetch_interval: 15
    # query_monitoring_response_time_threshold: 100
    # query_monitoring_count_threshold: 30
    # interval_calculator_cache_ttl_minutes: 10
    # Metric Category Toggles - Enable/disable entire categories of metrics
    # enable_instance_metrics: true
    # enable_database_metrics: true
    # enable_user_connection_metrics: true
    # enable_wait_time_metrics: true
    # enable_failover_cluster_metrics: true
    # enable_database_principals_metrics: true
    # enable_database_role_membership_metrics: true
    # enable_security_metrics: true
    # enable_lock_metrics: true
    # enable_thread_pool_metrics: true
    # enable_tempdb_metrics: true
    processors:
    # group system.cpu metrics by cpu
    metricstransform:
    transforms:
    - include: system.cpu.utilization
    action: update
    operations:
    - action: aggregate_labels
    label_set: [ state ]
    aggregation_type: mean
    - include: system.paging.operations
    action: update
    operations:
    - action: aggregate_labels
    label_set: [ direction ]
    aggregation_type: sum
    # remove system.cpu metrics for states
    filter/exclude_cpu_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "interrupt"'
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "nice"'
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "softirq"'
    filter/exclude_memory_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "slab_unreclaimable"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "inactive"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "cached"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "buffered"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "slab_reclaimable"'
    filter/exclude_memory_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.memory.usage" and attributes["state"] == "slab_unreclaimable"'
    - 'metric.name == "system.memory.usage" and attributes["state"] == "inactive"'
    filter/exclude_filesystem_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.utilization" and attributes["type"] == "squashfs"'
    filter/exclude_filesystem_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.usage" and attributes["type"] == "squashfs"'
    - 'metric.name == "system.filesystem.usage" and attributes["state"] == "reserved"'
    filter/exclude_filesystem_inodes_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.inodes.usage" and attributes["type"] == "squashfs"'
    - 'metric.name == "system.filesystem.inodes.usage" and attributes["state"] == "reserved"'
    filter/exclude_system_disk:
    metrics:
    datapoint:
    - 'metric.name == "system.disk.operations" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.merged" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.io" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.io_time" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.operation_time" and IsMatch(attributes["device"], "^loop.*") == true'
    filter/exclude_system_paging:
    metrics:
    datapoint:
    - 'metric.name == "system.paging.usage" and attributes["state"] == "cached"'
    - 'metric.name == "system.paging.operations" and attributes["type"] == "cached"'
    filter/exclude_network:
    metrics:
    datapoint:
    - 'IsMatch(metric.name, "^system.network.*") == true and attributes["device"] == "lo"'
    attributes/exclude_system_paging:
    include:
    match_type: strict
    metric_names:
    - system.paging.operations
    actions:
    - key: type
    action: delete
    # Transform to clear description and unit fields
    transform/clear_metadata:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    # Filter to only include execution plan and event metrics (for logs conversion)
    filter/exec_plan_include:
    metrics:
    include:
    match_type: strict
    metric_names:
    - sqlserver.slowquery.query_details
    - sqlserver.execution.plan
    - sqlserver.blocking_query.details
    - sqlserver.activequery.query_details
    # Filter to exclude execution plan and event metrics (from main metrics pipeline)
    filter/exec_plan_exclude:
    metrics:
    exclude:
    match_type: strict
    metric_names:
    - sqlserver.slowquery.query_details
    - sqlserver.execution.plan
    - sqlserver.blocking_query.details
    - sqlserver.activequery.query_details
    cumulativetodelta:
    max_staleness: 5m
    include:
    match_type: strict
    metrics:
    # Wait stats (sys.dm_os_wait_stats)
    - sqlserver.wait_stats.latch.wait_time_ms
    - sqlserver.wait_stats.latch.waiting_tasks_count
    - sqlserver.wait_stats.wait_time_ms
    - sqlserver.wait_stats.waiting_tasks_count
    # Instance stats (sys.dm_os_performance_counters)
    - sqlserver.stats.sql_compilations_per_sec
    - sqlserver.stats.sql_recompilations_per_sec
    - sqlserver.stats.lock_waits_per_sec
    - sqlserver.stats.deadlocks_per_sec
    - sqlserver.stats.user_errors_per_sec
    - sqlserver.stats.kill_connection_errors_per_sec
    - sqlserver.access.page_splits_per_sec
    - sqlserver.buffer.checkpoint_pages_per_sec
    - sqlserver.bufferpool.batch_requests_per_sec
    - sqlserver.instance.transactions_per_sec
    - sqlserver.instance.forced_parameterizations_per_sec
    - sqlserver.instance.full_scans_rate
    - sqlserver.instance.lock_timeouts_rate
    # Database log (sys.dm_os_performance_counters)
    - sqlserver.database.log.flushes_per_sec
    - sqlserver.database.log.bytes_flushed_per_sec
    - sqlserver.database.log.flush_waits_per_sec
    # Failover cluster
    - sqlserver.failover_cluster.log_bytes_received_per_sec
    # User connections
    - sqlserver.user_connections.authentication.logins_per_sec
    deltatorate:
    metrics:
    - sqlserver.wait_stats.latch.wait_time_ms
    - sqlserver.wait_stats.latch.waiting_tasks_count
    - sqlserver.wait_stats.wait_time_ms
    - sqlserver.wait_stats.waiting_tasks_count
    - sqlserver.stats.sql_compilations_per_sec
    - sqlserver.stats.sql_recompilations_per_sec
    - sqlserver.stats.lock_waits_per_sec
    - sqlserver.stats.deadlocks_per_sec
    - sqlserver.stats.user_errors_per_sec
    - sqlserver.stats.kill_connection_errors_per_sec
    - sqlserver.access.page_splits_per_sec
    - sqlserver.buffer.checkpoint_pages_per_sec
    - sqlserver.bufferpool.batch_requests_per_sec
    - sqlserver.instance.transactions_per_sec
    - sqlserver.instance.forced_parameterizations_per_sec
    - sqlserver.instance.full_scans_rate
    - sqlserver.instance.lock_timeouts_rate
    - sqlserver.database.log.flushes_per_sec
    - sqlserver.database.log.bytes_flushed_per_sec
    - sqlserver.database.log.flush_waits_per_sec
    - sqlserver.failover_cluster.log_bytes_received_per_sec
    - sqlserver.user_connections.authentication.logins_per_sec
    transform/host:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    transform:
    trace_statements:
    - context: span
    statements:
    - truncate_all(span.attributes, 4095)
    - truncate_all(resource.attributes, 4095)
    log_statements:
    - context: log
    statements:
    - truncate_all(log.attributes, 4095)
    - truncate_all(resource.attributes, 4095)
    # used to prevent out of memory situations on the collector
    memory_limiter:
    check_interval: 1s
    limit_mib: ${env:NEW_RELIC_MEMORY_LIMIT_MIB:-100}
    batch:
    resourcedetection:
    detectors: ["system"]
    system:
    hostname_sources: ["os"]
    resource_attributes:
    host.id:
    enabled: true
    resourcedetection/db_safe:
    detectors: ["system"]
    override: false
    system:
    hostname_sources: ["os"]
    resource_attributes:
    host.id:
    enabled: true
    resourcedetection/cloud:
    detectors: ["gcp", "ec2", "azure"]
    timeout: 2s
    override: true
    resourcedetection/env:
    detectors: ["env"]
    timeout: 2s
    override: true
    connectors:
    metricsaslogs:
    include_resource_attributes: true
    include_scope_info: true
    exporters:
    otlphttp:
    endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
    headers:
    api-key: "<YOUR_NEWRELIC_API_KEY>"
    compression: gzip
    service:
    pipelines:
    metrics/host:
    receivers: [hostmetrics]
    processors:
    - memory_limiter
    - metricstransform
    - filter/exclude_cpu_utilization
    - filter/exclude_memory_utilization
    - filter/exclude_memory_usage
    - filter/exclude_filesystem_utilization
    - filter/exclude_filesystem_usage
    - filter/exclude_filesystem_inodes_usage
    - filter/exclude_system_disk
    - filter/exclude_network
    - attributes/exclude_system_paging
    - transform/host
    - resourcedetection
    - resourcedetection/cloud
    - resourcedetection/db_safe
    - resourcedetection/env
    - cumulativetodelta
    - deltatorate
    - batch
    exporters: [otlphttp]
    traces:
    receivers: [otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlphttp]
    metrics:
    receivers: [newrelicsqlserver, otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, filter/exec_plan_exclude, batch]
    exporters: [otlphttp]
    logs:
    receivers: [metricsaslogs, otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlphttp]
    metrics/exec_plan_to_logs:
    receivers: [newrelicsqlserver, otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, filter/exec_plan_include, batch]
    exporters: [metricsaslogs]
    extensions: [health_check]

    Parámetro de configuración

    La siguiente tabla describe los parámetros de configuración clave para el receptor newrelicsqlserver:

    Parámetro

    Descripción

    <YOUR_DB_HOST>

    Ingrese el nombre de host o la dirección IP de SQL Server

    <YOUR_DB_PORT>

    Ingrese el número de puerto de SQL Server. El valor predeterminado está establecido en 1433.

    <USERNAME>

    Ingrese su nombre de usuario de la base de datos para la autenticación

    <PASSWORD>

    Ingrese su contraseña de la base de datos para la autenticación

    <YOUR_NEWRELIC_OTLP_ENDPOINT>

    Ingrese el endpoint OTLP de New Relic. Para obtener más información, consulta la documentación de los endpoints OTLP de New Relic.

    <YOUR_NEWRELIC_API_KEY>

    Ingrese su clave de API de New Relic.

    query_monitoring_response_time_threshold

    Tiempo de respuesta mínimo en milisegundos para considerar una consulta como lenta. El valor predeterminado está establecido en

    100

    ms.

    query_monitoring_count_threshold

    Recuento mínimo de ejecuciones para incluir una consulta en el monitoreo. El valor predeterminado está establecido en

    30

    .

    query_monitoring_fetch_interval

    Intervalo en segundos para obtener datos de monitoreo de consultas. El valor predeterminado está establecido en

    15

    segundos.

    collection_interval

    Intervalo en segundos para recopilar métricas. El valor predeterminado está establecido en

    15s

    .

Reiniciar el colector NRDOT

Después de actualizar la configuración, reinicie el servicio de colector NRDOT:

  • Para Windows, para reiniciar el servicio NRDOT Collector, ejecute:

    bash
    $
    net stop nrdot-collector-host
    $
    net start nrdot-collector-host
  • Para Linux, para reiniciar el servicio NRDOT Collector, ejecute:

    bash
    $
    sudo systemctl restart nrdot-collector-host

    Sugerencia

    Siempre reinicie el servicio de recopilador NRDOT después de realizar cambios de configuración para garantizar que los nuevos ajustes surtan efecto.

(Opcional) Configurar la correlación de APM y base de datos

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. Esta función le permite ver exactamente qué aplicaciones están generando workloads de base de datos específicas. Para obtener más información, consulte configurar la identificación de servicios de base de datos para obtener la correlación entre APM y la base de datos en New Relic.

Importante

Para ver los datos de rendimiento de la base de datos en APM, ambas entidades deben estar en la misma cuenta de New Relic. Si las entidades están en diferentes cuentas de New Relic, debe tener acceso a ambas cuentas para ver los datos.

(Opcional) Configurar la gestión de secretos

La función de gestión de secretos le permite administrar de forma segura información confidencial, como las credenciales de bases de datos. Esto ayuda a mejorar la seguridad de su configuración de monitoreo al evitar la codificación rígida de datos sensibles en los archivos de configuración. Para obtener más información, consulta gestión de secretos.

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:

  1. Vaya a https://one.newrelic.com > All Capabilities > Databases.
  2. Establezca los criterios de búsqueda como instrumentation.provider = opentelemetry.
  3. Seleccione su base de datos SQL Server de la lista de entidades.

Comandos admitidos del colector NRDOT

Para administrar el servicio NRDOT Collector, ver los logs o verificar el estado del servicio, utilice los siguientes comandos disponibles según su sistema operativo.

Resolución de problemas

Si encuentra algún problema de conectividad de red con el NRDOT Collector, ejecute los siguientes comandos para probar la conectividad con su instancia de SQL Server en el puerto 1433:

  • Para Windows, ejecute:

    bash
    $
    Test-NetConnection -ComputerName <YOUR_IP_ADDRESS> -Port <YOUR_PORT_NUMBER>
  • Para Linux, ejecute:

    bash
    $
    nc -zv <YOUR_IP_ADDRESS> <YOUR_PORT_NUMBER>

Métricas disponibles

Monitoree el rendimiento de su base de datos SQL Server con métricas organizadas por banderas de configuración. Las métricas predeterminadas se recopilan automáticamente para la funcionalidad de la UI de New Relic. También puede utilizar las métricas adicionales proporcionadas para obtener información más avanzada y profunda cuando habilite scrapers específicos.

Métrica predeterminada

Estas métricas son esenciales para las funciones de monitoreo de SQL Server de New Relic y se recopilan automáticamente independientemente de su configuración.

Métricas adicionales

Habilite estas métricas adicionales según sea necesario para obtener información más detallada sobre el rendimiento y el estado de su base de datos SQL Server.

Que sigue

Después de configurar el monitoreo de bases de datos SQL Server con NRDOT:

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.