• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

Windows RDS MSSQL monitoring with NRDOT

Preview

We're still working on this feature, but we'd love for you to try it out!

This feature is currently provided as part of a preview pursuant to our pre-release policies.

Set up Microsoft SQL Server monitoring using the NRDOT Collector on Windows environments to monitor AWS RDS for SQL Server instances. To monitor in a self-hosted environment, refer to Windows self-hosted instrumentation.

To install this through the New Relic UI instead, go to one.newrelic.com > Integrations & Agents > MSSQL (OpenTelemetry) . Follow the on-screen instructions to set up the integration. This page covers the CLI install path only.

Based on your RDS SQL Server security configuration, choose the authentication methods to connect the NRDOT Collector to your RDS instance:

Prerequisites

Before monitoring your Microsoft SQL Server with NRDOT, make sure your environment meets these requirements:

  • New Relic account with a valid license key
  • New Relic OTLP endpoint for your region
  • AWS RDS SQL Server requirements:
    • SQL Server authentication enabled on the RDS instance
    • RDS master user credentials or credentials for a SQL Server login with rds_superuser role
    • RDS Security Group configured to allow connections on port 1433 or custom port
    • SQL Server Management Studio (SSMS) or sqlcmd utility

Enroll to preview

This integration is available as part of the New Relic public preview program. Contact your Organization Manager to opt in from the Previews & Trials page.

Install NRDOT Collector

Install the NRDOT Collector on an EC2 Windows instance or local Windows machine that can connect to your RDS SQL Server instance.

重要

For RDS monitoring, install the NRDOT Collector on an EC2 instance in the same VPC as your RDS instance for optimal network connectivity and lower latency.

Download and install the NRDOT Collector using PowerShell:

bash
$
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name; $WebClient = New-Object System.Net.WebClient; $WebClient.Headers.Add("User-Agent", "Mozilla/5.0"); $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi"); Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

Create monitoring user

Run this script as an admin user to create the newrelic monitoring user and grant the necessary permissions for collecting SQL Server metrics.

ヒント

Run these script using RDS master username or a user with rds_superuser role. The script automatically excludes rdsadmin database which is reserved by AWS.

In your SQL Server Management Studio (SSMS), run the following script to create the newrelic monitoring user. Replace <YOUR_PASSWORD> with your desired password:

USE [master];
GO
CREATE LOGIN [newrelic] WITH PASSWORD = '<YOUR_PASSWORD>';
GO
GRANT VIEW SERVER STATE TO [newrelic];
GRANT VIEW ANY DEFINITION TO [newrelic];
GRANT VIEW ANY DATABASE TO [newrelic];
GO
DECLARE @name SYSNAME;
DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR
SELECT [name]
FROM [master].[sys].[databases]
WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')
AND [state] = 0;
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC('USE [' + @name + '];
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')
BEGIN
CREATE USER [newrelic] FOR LOGIN [newrelic];
END;
GRANT VIEW DATABASE STATE TO [newrelic];');
END TRY
BEGIN CATCH
PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM db_cursor INTO @name;
END
CLOSE db_cursor;
DEALLOCATE db_cursor;
GO

ヒント

To securely manage sensitive information, such as database credentials, store them in secret management tools.

Configure the NRDOT Collector

Create a new NRDOT Collector configuration file for your RDS SQL Server setup.

  1. Create a configuration file named as mssql-config.yaml in PowerShell as an Administrator:

    bash
    $
    New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File
  2. Add the following configuration to the mssql-config.yaml file created in the previous step:

full configuration

This configuration focuses on essential database monitoring for your RDS environment. To enable comprehensive monitoring with all available metrics, refer to the configuration reference.

mssql-config.yaml
1
receivers:
2
nrsqlserver:
3
collection_interval: 15s
4
username: newrelic
5
password: YOUR_PASSWORD
6
server: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com
7
port: 1433
8
9
# Enable comprehensive database metrics
10
metrics:
11
sqlserver.database.count:
12
enabled: true
13
sqlserver.database.io:
14
enabled: true
15
sqlserver.database.latency:
16
enabled: true
17
sqlserver.database.operations:
18
enabled: true
19
sqlserver.database.tempdb.space:
20
enabled: true
21
sqlserver.database.tempdb.version_store.size:
22
enabled: true
23
sqlserver.deadlock.rate:
24
enabled: true
25
sqlserver.os.wait.duration:
26
enabled: true
27
sqlserver.processes.blocked:
28
enabled: true
29
sqlserver.memory.grants.pending.count:
30
enabled: true
31
sqlserver.database.file.size:
32
enabled: true
33
sqlserver.memory.area:
34
enabled: true
35
36
# Enable top query and query sample log collection
37
events:
38
db.server.query_sample:
39
enabled: true
40
db.server.top_query:
41
enabled: true
42
43
# Top query collection configuration
44
top_query_collection:
45
lookback_time: 60s
46
max_query_sample_count: 1000
47
top_query_count: 250
48
collection_interval: 60s
49
50
collect_full_query_text: true
51
allowed_comment_keys:
52
- nr_service_guid
53
54
# Query sample collection configuration
55
query_sample_collection:
56
max_rows_per_query: 100
57
58
processors:
59
memory_limiter:
60
check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
61
limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
62
spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
63
64
batch:
65
66
exporters:
67
otlp:
68
endpoint: https://otlp.nr-data.net:4318
69
headers:
70
api-key: YOUR_LICENSE_KEY
71
tls:
72
insecure: false
73
compression: gzip
74
75
service:
76
telemetry:
77
metrics:
78
level: none
79
80
pipelines:
81
metrics:
82
receivers: [nrsqlserver]
83
processors: [memory_limiter, batch]
84
exporters: [otlp]
85
86
logs:
87
receivers: [nrsqlserver]
88
processors: [memory_limiter, batch]
89
exporters: [otlp]

Update Windows service registry

  1. Update the Windows Service Registry to use the new mssql-config.yaml file using one of the following methods:

    • For PowerShell: Run the following command as Administrator:

      bash
      $
      Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'
    • For Command Prompt: If PowerShell isn't available, use Command Prompt instead and run the following command as Administrator:

      bash
      $
      sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""
  2. Validate the NRDOT Collector configuration to ensure it's correctly formatted and will work properly.

    bash
    $
    & "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

ヒント

To correlate your application performance with database operations, you can set up database service identification. For more information, refer to set up database service identification.

Restart NRDOT Collector

After updating your configuration, restart the NRDOT Collector service:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

ヒント

Always restart the NRDOT Collector service after making configuration changes to ensure the new settings take effect.

Find and use your data

Once your data is being collected, you can access comprehensive SQL Server database monitoring through New Relic's UI.

To find your SQL Server database entity in New Relic:

  1. Go to https://one.newrelic.com > All Capabilities > Databases.

  2. From the Entity type dropdown, select MSSQL instance, then click Apply.

  3. Select your SQL Server database from the list of entities.

    After setting up SQL Server monitoring with NRDOT, you can:

Prerequisites

Before monitoring your Microsoft SQL Server with NRDOT using Windows Domain Authentication, make sure your environment meets these requirements:

  • New Relic account with a valid license key
  • New Relic OTLP endpoint for your region
  • SQL Server requirements, you'll need:
    • SQL Server 2017 or later on Amazon RDS
    • RDS master user credentials or credentials for a SQL Server login with rds_superuser role
    • RDS Security Group configured to allow connections on port 1433 or custom port
    • SQL Server Management Studio (SSMS) or sqlcmd utility
    • RDS instance associated with the AWS Active Directory service
  • Windows Domain Authentication requirements:
    • Windows domain environment with Active Directory
    • Domain-joined Windows EC2 instance
    • RDS SQL Server configured to accept Windows Authentication
    • Domain user account that will be used by NRDOT Collector
  • Network connectivity to New Relic OTLP endpoint
  • Your RDS SQL Server endpoint URL, which can be found in your AWS RDS Console under Connectivity & security. For more information, refer to AWS RDS documentation.

Enroll to preview

This integration is available as part of the New Relic public preview program. Contact your Organization Manager to opt in from the Previews & Trials page.

Install NRDOT Collector

Install the NRDOT Collector on a domain-joined EC2 Windows instance or a local Windows machine that is part of the same domain and can connect to your RDS SQL Server instance.

重要

For RDS monitoring, install the NRDOT Collector on an EC2 instance in the same VPC as your RDS instance for optimal network connectivity and lower latency.

  1. Download and install the NRDOT Collector using PowerShell:

    bash
    $
    [Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name; $WebClient = New-Object System.Net.WebClient; $WebClient.Headers.Add("User-Agent", "Mozilla/5.0"); $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi"); Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

Create Windows domain login

Connect to your RDS SQL Server instance using SQL Server Management Studio (SSMS) or sqlcmd with administrative privileges.

In your SQL Server Management Studio (SSMS), run the following script to create a login for your gMSA account and grant the necessary permissions. Replace all occurrences of <YOUR_DOMAIN>\<YOUR_DOMAIN_USER> with your actual domain and account name.

USE [master];
GO
CREATE LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FROM WINDOWS;
GO
GRANT VIEW ANY DATABASE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
GRANT VIEW SERVER STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
GRANT VIEW ANY DEFINITION TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
GO
-- Grant access to all databases (required for query monitoring and tempdb metrics)
DECLARE @name SYSNAME;
DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR
SELECT [name] FROM [master].[sys].[databases]
WHERE [name] NOT IN ('master','msdb','model','rdsadmin','distribution')
AND [state] = 0;
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC('USE [' + @name + '];
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>'')
BEGIN
CREATE USER [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FOR LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
END;
GRANT VIEW DATABASE STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];');
END TRY
BEGIN CATCH
PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM db_cursor INTO @name;
END
CLOSE db_cursor;
DEALLOCATE db_cursor;
GO

ヒント

To securely manage sensitive information, such as database credentials store them in secret management tools.

Run as domain user

  1. Configure the NRDOT Collector service to run as your domain user using PowerShell. Replace YOUR_DOMAIN\YOUR_USER_ACCOUNT with your domain and account name:

    bash
    $
    # Configure service to use domain account
    $
    # The space after obj= and password= is required syntax for sc.exe
    $
    sc.exe config "nrdot-collector" obj= "YOUR_DOMAIN\YOUR_USER_ACCOUNT" password= "<YOUR_PASSWORD>"
    $
    $
    # Restart the service
    $
    Restart-Service nrdot-collector
  2. Validate the service identity:

    bash
    $
    Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, State, StartName
    $
    # Expected: StartName = YOUR_DOMAIN\YOUR_USER_ACCOUNT

Configure NRDOT Collector

  1. Create a configuration file named as mssql-config.yaml in PowerShell as an Administrator::

    bash
    $
    New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File
  2. Add the following configuration to the mssql-config.yaml file created in the previous step:

重要

Windows Domain Authentication uses integrated security, which uses the same configuration approach as gMSA authentication. Update the datasource server value to your RDS endpoint. The NRDOT service will authenticate using the domain account you configured in Step 3.

mssql-config.yaml
1
receivers:
2
nrsqlserver:
3
collection_interval: 15s
4
datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"
5
6
# Enable comprehensive database metrics
7
metrics:
8
sqlserver.database.count:
9
enabled: true
10
sqlserver.database.io:
11
enabled: true
12
sqlserver.database.latency:
13
enabled: true
14
sqlserver.database.operations:
15
enabled: true
16
sqlserver.database.tempdb.space:
17
enabled: true
18
sqlserver.database.tempdb.version_store.size:
19
enabled: true
20
sqlserver.deadlock.rate:
21
enabled: true
22
sqlserver.os.wait.duration:
23
enabled: true
24
sqlserver.processes.blocked:
25
enabled: true
26
sqlserver.memory.grants.pending.count:
27
enabled: true
28
sqlserver.database.file.size:
29
enabled: true
30
sqlserver.memory.area:
31
enabled: true
32
33
# Enable top query and query sample log collection
34
events:
35
db.server.query_sample:
36
enabled: true
37
db.server.top_query:
38
enabled: true
39
40
# Top query collection configuration
41
top_query_collection:
42
lookback_time: 60s
43
max_query_sample_count: 1000
44
top_query_count: 250
45
collection_interval: 60s
46
47
collect_full_query_text: true
48
allowed_comment_keys:
49
- nr_service_guid
50
51
# Query sample collection configuration
52
query_sample_collection:
53
max_rows_per_query: 100
54
55
processors:
56
memory_limiter:
57
check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
58
limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
59
spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
60
61
batch:
62
63
exporters:
64
otlp:
65
endpoint: https://otlp.nr-data.net:4318
66
headers:
67
api-key: YOUR_LICENSE_KEY
68
tls:
69
insecure: false
70
compression: gzip
71
72
service:
73
telemetry:
74
metrics:
75
level: none
76
77
pipelines:
78
metrics:
79
receivers: [nrsqlserver]
80
processors: [memory_limiter, batch]
81
exporters: [otlp]
82
83
logs:
84
receivers: [nrsqlserver]
85
processors: [memory_limiter, batch]
86
exporters: [otlp]

full configuration

This configuration focuses on essential database monitoring for your RDS environment. To enable comprehensive monitoring with all available metrics, refer to the configuration reference.

Update Windows Service Registry

  1. Update the Windows Service Registry to use the new mssql-config.yaml file using one of the following methods:

    • For PowerShell: Run the following command as Administrator:

      bash
      $
      Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'
    • For Command Prompt: If PowerShell isn't available, use Command Prompt instead and run the following command as Administrator:

      bash
      $
      sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""
  2. Validate the NRDOT Collector configuration to ensure it's correctly formatted and will work properly:

    bash
    $
    & "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

ヒント

To correlate your application performance with database operations, you can set up database service identification. For more information, refer to database service identification setup guide.

Restart NRDOT Collector

After updating your configuration, restart the NRDOT Collector service:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

Verify the service is running under the domain account by checking Windows Services (services.msc). The Log On As column should show your domain account. For example, CORP\SQLMonitor.

Find and use your data

Once your data is being collected, you can access comprehensive SQL Server database monitoring through New Relic's UI.

To find your SQL Server database entity in New Relic:

  1. Go to https://one.newrelic.com > All Capabilities > Databases.

  2. From the Entity type dropdown, select MSSQL instance, then click Apply.

  3. Select your SQL Server database from the list of entities.

    After setting up SQL Server monitoring with NRDOT, you can:

Prerequisites

Before monitoring your Microsoft SQL Server with NRDOT using gMSA authentication, make sure you've:

  • New Relic account with a valid license key
  • New Relic OTLP endpoint for your region
  • SQL Server requirements, you'll need:
    • SQL Server 2017 or later on Amazon RDS
    • RDS master user credentials or credentials for a SQL Server login with rds_superuser role
    • RDS Security Group configured to allow connections on port 1433 or custom port
    • SQL Server Management Studio (SSMS) or sqlcmd utility
    • RDS instance associated with the AWS Active Directory service
  • Your RDS SQL Server endpoint URL, which can be found in your AWS RDS Console under Connectivity & security. For more information, refer to AWS RDS documentation.
  • Active Directory environment with gMSA support
  • Domain-joined Windows EC2 instance authorized to use the gMSA account
  • Network connectivity to New Relic OTLP endpoint

Enroll to preview

This integration is available as part of the New Relic public preview program. Contact your Organization Manager to opt in from the Previews & Trials page.

Install NRDOT Collector

Download and install the NRDOT Collector using PowerShell:

bash
$
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name; $WebClient = New-Object System.Net.WebClient; $WebClient.Headers.Add("User-Agent", "Mozilla/5.0"); $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi"); Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

Create monitoring user

Connect to your RDS SQL Server instance using SQL Server Management Studio (SSMS) or sqlcmd with administrative privileges.

In your SQL Server Management Studio (SSMS), run the following script to create a login for your gMSA account and grant the necessary permissions. Replace all occurrences of <YOUR_DOMAIN>\<YOUR_GMSA_USERNAME> with your actual domain and account name.

USE [master];
GO
CREATE LOGIN [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$] FROM WINDOWS;
GO
GRANT VIEW ANY DATABASE TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
GRANT VIEW SERVER STATE TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
GRANT VIEW ANY DEFINITION TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
GO
-- Grant access to all databases
DECLARE @name SYSNAME;
DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR
SELECT [name] FROM [master].[sys].[databases]
WHERE [name] NOT IN ('master','msdb','model','rdsadmin','distribution')
AND [state] = 0;
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC('USE [' + @name + '];
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$'')
BEGIN
CREATE USER [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$] FOR LOGIN [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
END;
GRANT VIEW DATABASE STATE TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];');
END TRY
BEGIN CATCH
PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM db_cursor INTO @name;
END
CLOSE db_cursor;
DEALLOCATE db_cursor;
GO

ヒント

To securely manage sensitive information, such as database credentials store them in secret management tools.

Run as gMSA account

Configure the NRDOT Collector service to run as your gMSA account using PowerShell. Replace <YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$ with your domain and gMSA account name. You must include the $ at the end, as it is required for gMSA accounts:

bash
$
# Stop the NRDOT Collector service
$
Stop-Service nrdot-collector
$
$
# Configure service to use gMSA account
$
# Use cmd /c to avoid PowerShell treating $ as a variable
$
cmd /c 'sc config nrdot-collector obj= "<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$" password= ""'
$
$
# Verify the configuration
$
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, StartName
$
$
# Start the NRDOT Collector service
$
Start-Service nrdot-collector

重要

The gMSA accounts don't require passwords. Keep it empty when configuring the service.

Configure NRDOT Collector

  1. Create a configuration file named as mssql-config.yaml in PowerShell as an Administrator::

    bash
    $
    New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File
  2. Add the following configuration to the mssql-config.yaml file created in the previous step:

full configuration

This configuration focuses on essential database monitoring for your RDS environment. To enable comprehensive monitoring with all available metrics, refer to the configuration reference.

mssql-config.yaml
1
receivers:
2
nrsqlserver:
3
collection_interval: 15s
4
datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"
5
6
# Enable comprehensive database metrics
7
metrics:
8
sqlserver.database.count:
9
enabled: true
10
sqlserver.database.io:
11
enabled: true
12
sqlserver.database.latency:
13
enabled: true
14
sqlserver.database.operations:
15
enabled: true
16
sqlserver.database.tempdb.space:
17
enabled: true
18
sqlserver.database.tempdb.version_store.size:
19
enabled: true
20
sqlserver.deadlock.rate:
21
enabled: true
22
sqlserver.os.wait.duration:
23
enabled: true
24
sqlserver.processes.blocked:
25
enabled: true
26
sqlserver.memory.grants.pending.count:
27
enabled: true
28
sqlserver.database.file.size:
29
enabled: true
30
sqlserver.memory.area:
31
enabled: true
32
33
# Enable top query and query sample log collection
34
events:
35
db.server.query_sample:
36
enabled: true
37
db.server.top_query:
38
enabled: true
39
40
# Top query collection configuration
41
top_query_collection:
42
lookback_time: 60s
43
max_query_sample_count: 1000
44
top_query_count: 250
45
collection_interval: 60s
46
47
collect_full_query_text: true
48
allowed_comment_keys:
49
- nr_service_guid
50
51
# Query sample collection configuration
52
query_sample_collection:
53
max_rows_per_query: 100
54
55
processors:
56
memory_limiter:
57
check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
58
limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
59
spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
60
61
batch:
62
63
exporters:
64
otlp:
65
endpoint: https://otlp.nr-data.net:4318
66
headers:
67
api-key: YOUR_LICENSE_KEY
68
tls:
69
insecure: false
70
compression: gzip
71
72
service:
73
telemetry:
74
metrics:
75
level: none
76
77
pipelines:
78
metrics:
79
receivers: [nrsqlserver]
80
processors: [memory_limiter, batch]
81
exporters: [otlp]
82
83
logs:
84
receivers: [nrsqlserver]
85
processors: [memory_limiter, batch]
86
exporters: [otlp]

Update Windows Service Registry

  1. Update the Windows Service Registry to use the new mssql-config.yaml file using one of the following methods:

    • For PowerShell: Run the following command as Administrator:

      bash
      $
      Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'
    • For Command Prompt: If PowerShell isn't available, use Command Prompt instead and run the following command as Administrator:

      bash
      $
      sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""
  2. Validate the NRDOT collector configuration to ensure it's correctly formatted and will work properly:

    bash
    $
    & "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

ヒント

To correlate your application performance with database operations, you can set up database service identification. For more information, refer to set up database service identification.

Restart NRDOT collector

After updating your configuration, restart the NRDOT Collector service on your domain-joined EC2 Windows instance:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

Verify that the service is running under the gMSA account by checking Windows Services (services.msc). The Log On As column should show your gMSA account, for example, CORP\SQL-gMSA$.

Find and use your data

Once your data is being collected, you can access comprehensive SQL Server database monitoring through New Relic's UI.

To find your SQL Server database entity in New Relic:

  1. Go to https://one.newrelic.com > All Capabilities > Databases.

  2. From the Entity type dropdown, select MSSQL instance, then click Apply.

  3. Select your SQL Server database from the list of entities.

    After setting up SQL Server monitoring with NRDOT, you can:

Set up APM-database correlation

Learn how to correlate your application performance with database operations in New Relic.

Troubleshooting

Learn how to troubleshoot your MSSQL Windows monitoring setup in New Relic.

Metrics reference

Learn about the available metrics collected by the NRDOT Collector.

Copyright © 2026 New Relic株式会社。

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