• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Récepteur de requête SQL avec NRDOT

|View as Markdown (English)

Aperçu

Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !

Cette fonctionnalité est actuellement fournie dans le cadre d'un aperçu conformément à nos politiques de pré-sortie.

Le sqlqueryreceiver est un Récepteur OpenTelemetry Collector qui vous permet d’exécuter n’importe quelle requête SQL personnalisée sur votre base de données, et d’ingérer les résultats sous forme de métriques dans New Relic.

Utilisez ceci lorsque vous souhaitez monitorer des données non couvertes par les métriques nroracledbreceiver / nrsqlserverreceiver intégrées. Les métriques personnalisées collectées via sqlqueryreceiver apparaissent sous la même entité Oracle ou SQL Server dans New Relic que les données intégrées du Récepteur, à condition que host.name soit correctement configuré.

Prérequis

  • L’utilisateur de base de données configuré dans la source de données doit avoir le privilège SELECT sur toute vue ou table que vous avez l’intention d’interroger.
  • Le binaire du collecteur doit inclure le composant sqlqueryreceiver.

Configuration

Ajoutez le bloc sqlqueryreceiver dans la section receivers: de votre oracle-config.yaml existant, à côté du bloc nroracledb existant :

receivers:
nroracledb:
...
sqlquery/oracle:
driver: oracle
# Approach 1: Use the `endpoint`, `username`, `password`, and `service` fields to connect to your database. The receiver will construct the datasource URL for you.
# host: <YOUR_DB_HOST>
# port: <YOUR_DB_PORT>
# database: <YOUR_DATABASE_NAME>
# username: <YOUR_DB_USERNAME>
# password: <YOUR_DB_PASSWORD>
# Approach 2: Use the `datasource` field to provide a full connection string.
datasource: "oracle://<YOUR_DB_USERNAME>:<YOUR_DB_PASSWORD>@<YOUR_DB_HOST>:<YOUR_DB_PORT>/<YOUR_SERVICE_NAME>"
collection_interval: 60s
queries:
- sql: "<YOUR_CUSTOM_SQL>"
metrics:
- metric_name: oracledb.<YOUR_METRIC_NAME>
value_column: <RESULT_COLUMN>
attribute_columns: [<DIMENSION_COLUMN_1>, <DIMENSION_COLUMN_2>]
value_type: double

Définissez les paramètres suivants pour chaque métrique :

paramètres

Description

<YOUR_DB_HOST>

Votre nom d’hôte ou adresse IP. Par exemple,

10.12.0.4

<YOUR_DB_PORT>

Votre numéro de port. La valeur par défaut est définie sur

1433

<YOUR_DB_USERNAME>

Votre nom d’utilisateur de base de données Oracle. Par exemple

newrelic

<YOUR_DB_PASSWORD>

Le mot de passe de votre base de données Oracle.

<YOUR_SERVICE_NAME>

Le nom de votre service Oracle. Par exemple

master

<collection_interval>

À quelle fréquence exécuter les requêtes et collecter les métriques. Par exemple,

30s

,

60s

<YOUR_CUSTOM_SQL>

La requête SQL à exécuter.

Important

Assurez-vous que vos requêtes personnalisées ne collectent, ni n’exposent de PII, ou de données sensibles.

<YOUR_METRIC_NAME>

L’affichage du nom de votre métrique dans New Relic. Utilisez le préfixe

oracledb.

par souci de cohérence. Par exemple

oracledb.custom.wait_time_ms

<VALUE_COLUMN>

La colonne du résultat de la requête dont la valeur devient la valeur de la métrique. Par exemple

wait_time_ms

<VALUE_TYPE>

Type de données de la colonne de valeur. Options :

int

,

double

. Par défaut

int

si omis. Par exemple

int

<DATA_TYPE>

Type de métrique OTLP. Utilisez

gauge

pour les valeurs actuelles/instantanées. Utilisez

sum

pour les compteurs cumulatifs. Par défaut

gauge

si omis. Par exemple

gauge

<UNIT>

Unité de mesure de la valeur de la métrique. Utilisé comme métadonnées dans New Relic. Par exemple

ms

,

By

,

s

,

%

,

1

<ATTRIBUTE_COLUMNS>

Colonnes du résultat de la requête qui deviennent des étiquettes/dimensions de métrique. Utilisé pour filtrer et facetter dans NRQL. Par exemple

["wait_type", "database_name"]

Important

Pour les utilisateurs de CDB Oracle (préfixe C##), encodez # en tant que %23 dans l’URL de la source de données. Par exemple : c##newrelic doit être c%23%23newrelic

Convention de nommage

Les noms de métriques doivent commencer par oracledb. pour être associés à l’entité correcte dans New Relic. Les métriques avec un préfixe différent seront ingérées mais n’apparaîtront pas sous l’entité de base de données.

Synthèse d’entité

Ajoutez un Processeur resource/add_host pour définir host.name sur la même valeur que celle utilisée par le Récepteur de base de données. Sans cela, les métriques personnalisées ne seront pas liées à l’entité de base de données.

Ajoutez le Processeur dans la section processors: :

processors:
batch:
resource/add_event_name:
attributes:
- key: host.address
value: "<YOUR_DB_HOST>"
action: upsert
resource/add_host:
attributes:
- key: host.name
value: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
action: upsert

Configuration du Pipeline

Ajoutez un pipeline metrics/custom dans la section service.pipelines: de la configuration, à côté des pipelines existants :

service:
pipelines:
metrics/oracledb:
receivers: [nroracledb]
processors: [resource/add_event_name, batch]
exporters: [otlp/newrelic]
logs/oracledb:
receivers: [nroracledb]
processors: [resource/add_event_name, batch]
exporters: [otlp/newrelic]
metrics/custom:
receivers: [sqlquery/oracle]
processors: [resource/add_host, resource/add_event_name, batch]
exporters: [otlp/newrelic]

Important

Ajoutez resource/add_host avant batch dans la liste des processeurs.

NRQL pour valider les données

Après avoir redémarré le collecteur, exécutez ce qui suit pour confirmer que les métriques personnalisées arrivent :

SELECT uniques(metricName) FROM Metric
WHERE otel.library.name LIKE '%sqlqueryreceiver%'
AND metricName LIKE 'oracledb.%'
SINCE 1 hour ago

Dépannage [#troubleshooting]

ProblèmeCauseRéparer
ORA-00942: table or view does not existPrivilège SELECT manquant pour l’utilisateur de base de donnéesAccordez SELECT ON <VIEW_NAME> à l’utilisateur
missing port in address# dans le nom d’utilisateur / mot de passe non encodé en URLRemplacez # par %23 dans l’URL de la source de données
Aucune donnée dans New Relichost.name non défini ou non concordantAjoutez le Processeur resource/add_host avec la valeur d’hôte correcte
Métriques ne figurant pas sous l’entité de base de donnéesPréfixe requis manquant dans le nom de métriqueAssurez-vous que les noms de métriques commencent par oracledb. pour la base de données Oracle ou sqlserver. pour SQL Server.

Ajoutez le bloc sqlqueryreceiver dans la section receivers: de votre configuration de collecteur SQL Server, à côté du bloc nrsqlserver existant :

receivers:
nrsqlserver:
...
sqlquery:
driver: sqlserver
#Approach 1: Use the `host`, `port`, `database`, `username`, and `password` fields to connect to your database. The receiver will construct the datasource URL for you.
# host: <YOUR_DB_HOST>
# port: <YOUR_DB_PORT>
# database: <YOUR_DATABASE_NAME>
# username: <YOUR_DB_USERNAME>
# password: <YOUR_DB_PASSWORD>
# Approach 2: Use the `datasource` field to provide a full connection string.
datasource: "sqlserver://<YOUR_DB_USERNAME>:<YOUR_DB_PASSWORD>@<YOUR_DB_HOST>:<YOUR_DB_PORT>?database=<YOUR_DATABASE_NAME>"
collection_interval: 30s
queries:
- sql: "<YOUR_CUSTOM_SQL>"
metrics:
- metric_name: sqlserver.<YOUR_METRIC_NAME>
value_column: <VALUE_COLUMN>
value_type: <VALUE_TYPE>
data_type: <DATA_TYPE>
unit: <UNIT>
attribute_columns: ["<ATTRIBUTE_COLUMNS>"]
- sql: "<YOUR_CUSTOM_SQL>"
metrics:
- metric_name: sqlserver.<YOUR_METRIC_NAME>
value_column: <VALUE_COLUMN>
value_type: <VALUE_TYPE>
data_type: <DATA_TYPE>
unit: <UNIT>
attribute_columns: ["<ATTRIBUTE_COLUMNS>"]

Définissez les paramètres suivants pour chaque métrique :

paramètres

Description

<YOUR_DB_HOST>

Le nom d’hôte ou l’adresse IP de votre serveur. Par exemple,

10.12.0.4

<YOUR_DB_PORT>

Votre numéro de port de serveur. La valeur par défaut est définie sur

1433

<YOUR_DB_USERNAME>

Votre nom d’utilisateur SQL Server. Omettre pour l’authentification de domaine Windows / GMSA. Par exemple

newrelic

<YOUR_DB_PASSWORD>

Votre mot de passe SQL Server. Omettre pour l’authentification de domaine Windows / GMSA. Par exemple

secret

<YOUR_DATABASE_NAME>

Le nom de votre base de données à utiliser comme contexte de connexion initial. Par exemple

master

collection_interval

À quelle fréquence exécuter les requêtes et collecter les métriques. Par exemple,

30s

,

60s

<YOUR_CUSTOM_SQL>

La requête SQL à exécuter. Par exemple, SELECT SUM(pages_kb) / 1024 AS size_mb, type FROM sys.dm_os_memory_clerks GROUP BY type

Important

Assurez-vous que vos requêtes personnalisées ne collectent, ni n’exposent de PII, ou de données sensibles.

<YOUR_METRIC_NAME>

L’affichage du nom de votre métrique dans New Relic. Utilisez le préfixe

sqlserver.

par souci de cohérence. Par exemple

sqlserver.custom.wait_time_ms

<VALUE_COLUMN>

La colonne du résultat de la requête dont la valeur devient la valeur de la métrique. Par exemple

wait_time_ms

<VALUE_TYPE>

Type de données de la colonne de valeur. Options :

int

,

double

. Par défaut

int

si omis. Par exemple

int

<DATA_TYPE>

Type de métrique OTLP. Utilisez

gauge

pour les valeurs actuelles/instantanées. Utilisez

sum

pour les compteurs cumulatifs. Par défaut

gauge

si omis. Par exemple

gauge

<UNIT>

Unité de mesure de la valeur de la métrique. Utilisé comme métadonnées dans New Relic. Par exemple

ms

,

By

,

s

,

%

,

1

<ATTRIBUTE_COLUMNS>

Colonnes du résultat de la requête qui deviennent des étiquettes/dimensions de métrique. Utilisé pour filtrer et facetter dans NRQL. Par exemple

["wait_type", "database_name"]

Convention de nommage

Les noms de métriques doivent commencer par sqlserver. pour être associés à l’entité correcte dans New Relic. Les métriques avec un préfixe différent seront ingérées mais n’apparaîtront pas sous l’entité de base de données.

Synthèse d’entité

Ajoutez un Processeur resource/add_host pour définir host.name sur la même valeur que celle utilisée par le Récepteur de base de données. Sans cela, les métriques personnalisées ne seront pas liées à l’entité de base de données.

Ajoutez le Processeur dans la section processors: :

processors:
resource/add_host:
attributes:
- key: service.instance.id
value: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
action: upsert

Configuration du Pipeline

Ajoutez un pipeline metrics/custom dans la section service.pipelines: de la configuration, à côté des pipelines existants :

service:
pipelines:
metrics/sqlquery:
receivers: [sqlquery]
processors: [resource/add_host, batch]
exporters: [otlphttp]

Important

Ajoutez resource/add_host avant batch dans la liste des processeurs.

NRQL pour valider les données

Après avoir redémarré le collecteur, exécutez ce qui suit pour confirmer que les métriques personnalisées arrivent :

SELECT uniques(metricName) FROM Metric
WHERE otel.library.name LIKE '%sqlqueryreceiver%'
AND metricName LIKE 'sqlserver.%'
SINCE 1 hour ago
Droits d'auteur © 2026 New Relic Inc.

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