• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

NRDOT를 사용하는 SQL 쿼리 수신기

|View as Markdown (English)

시사

이 기능은 아직 개발 중이지만 꼭 사용해 보시기 바랍니다!

이 기능은 현재 사전 출시 정책 에 따라 미리보기의 일부로 제공됩니다.

sqlqueryreceiver은(는) 데이터베이스에 대해 커스텀 SQL 쿼리를 실행하고 그 결과를 메트릭으로 뉴렐릭에 수집할 수 있도록 하는 OpenTelemetry Collector 수신자입니다.

내장된 nroracledbreceiver / nrsqlserverreceiver 메트릭에 포함되지 않은 데이터를 모니터할 때 이를 사용하십시오. host.name이(가) 올바르게 구성된 경우, sqlqueryreceiver을(를) 통해 수집된 커스텀 지표는 뉴렐릭에서 내장 수신자 데이터와 동일한 오라클 또는 SQL Server 엔티티 아래에 표시됩니다.

전제 조건

  • 데이터소스에 설정된 데이터베이스 사용자는 쿼리하려는 모든 뷰 또는 테이블에 대해 SELECT 권한을 가져야 합니다.
  • 수집기 바이너리에는 sqlqueryreceiver 구성 요소가 포함되어야 합니다.

구성

기존 nroracledb 블록과 함께 기존 oracle-config.yamlreceivers: 섹션 내에 sqlqueryreceiver 블록을 추가해 주십시오:

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

각 메트릭에 대해 다음 파라미터를 설정하십시오:

매개변수

설명

<YOUR_DB_HOST>

호스트명 또는 IP 주소입니다. 예를 들어,

10.12.0.4

<YOUR_DB_PORT>

포트 번호입니다. 기본값은 다음으로 설정되어 있습니다

1433

<YOUR_DB_USERNAME>

오라클 데이터베이스 사용자 이름입니다. 예를 들어

newrelic

<YOUR_DB_PASSWORD>

오라클 데이터베이스 비밀번호입니다.

<YOUR_SERVICE_NAME>

오라클 서비스 이름. 예를 들어

master

<collection_interval>

쿼리를 실행하고 메트릭을 수집하는 빈도입니다. 예:

30s

,

60s

<YOUR_CUSTOM_SQL>

실행할 SQL 쿼리.

중요

사용자 지정 쿼리가 PII 또는 민감한 데이터를 수집하거나 노출하지 않도록 하십시오.

<YOUR_METRIC_NAME>

뉴렐릭에 표시될 메트릭 이름. 일관성을 위해

oracledb.

접두사를 사용하십시오. 예를 들어

oracledb.custom.wait_time_ms

<VALUE_COLUMN>

값이 메트릭 값이 되는 쿼리 결과의 열입니다. 예를 들어

wait_time_ms

<VALUE_TYPE>

값 열의 데이터 유형입니다. 옵션:

int

,

double

. 생략 시

int

로 기본 설정됩니다. 예를 들어

int

<DATA_TYPE>

OTLP 메트릭 유형입니다. 현재/스냅샷 값에

gauge

을(를) 사용하십시오. 누적 카운터에

sum

을(를) 사용하십시오. 생략할 경우

gauge

(으)로 기본 설정됩니다. 예를 들어

gauge

<UNIT>

메트릭 값의 측정 단위입니다. 뉴렐릭에서 메타데이터로 사용됩니다. 예를 들어

ms

,

By

,

s

,

%

,

1

<ATTRIBUTE_COLUMNS>

메트릭 레이블/차원이 되는 쿼리 결과의 열입니다. NRQL에서 필터링 및 패싯하는 데 사용됩니다. 예를 들어

["wait_type", "database_name"]

중요

오라클 CDB 사용자(C## 접두사)의 경우 데이터소스 URL에서 #을(를) %23 (으)로 인코딩해 주십시오. 예: c##newrelic은(는) 다음과 같아야 합니다. c%23%23newrelic

명명 규칙

뉴렐릭의 올바른 엔티티와 연결되려면 메트릭 이름이 oracledb.로 시작해야 합니다. 다른 접두사가 있는 메트릭은 수집되지만 데이터베이스 엔티티 아래에 표시되지 않습니다.

엔티티 합성

데이터베이스 수신기가 사용하는 것과 동일한 값으로 host.name을(를) 설정하려면 resource/add_host 프로세서를 추가하십시오. 이것이 없으면 커스텀 지표가 데이터베이스 엔티티에 연결되지 않습니다.

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

Pipeline 설정

기존 파이프라인과 함께 구성의 service.pipelines: 섹션에 metrics/custom 파이프라인을 추가하십시오:

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]

중요

프로세서 목록에서 batch 앞에 resource/add_host을(를) 추가합니다.

데이터를 검증하기 위한 NRQL

수집기를 다시 시작한 후 다음을 실행하여 커스텀 지표가 수신되는지 확인하십시오:

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

문제점 해결 [#troubleshooting]

문제원인고치다
ORA-00942: table or view does not exist데이터베이스 사용자의 SELECT 권한 누락사용자에게 SELECT ON <VIEW_NAME>을(를) 부여하십시오
missing port in address# 사용자 이름/비밀번호가 URL 인코딩되지 않음데이터 소스 URL에서 #%23로 변경하십시오
뉴렐릭에 데이터 없음host.name 설정되지 않았거나 일치하지 않음올바른 호스트 값으로 resource/add_host 프로세서를 추가하십시오
데이터베이스 엔티티 아래에 없는 메트릭메트릭 이름에 필수 접두사 누락오라클 데이터베이스의 경우 메트릭 이름이 oracledb. (으)로 시작하고 SQL Server의 경우 sqlserver. (으)로 시작하는지 확인하십시오.

SQL Server 수집기 설정의 receivers: 섹션 내에 기존 nrsqlserver 블록과 함께 sqlqueryreceiver 블록을 추가하십시오:

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>"]

각 메트릭에 대해 다음 파라미터를 설정하십시오:

매개변수

설명

<YOUR_DB_HOST>

서버 호스트명 또는 IP 주소입니다. 예를 들어,

10.12.0.4

<YOUR_DB_PORT>

서버 포트 번호입니다. 기본값은 다음으로 설정되어 있습니다

1433

<YOUR_DB_USERNAME>

SQL Server 사용자 이름입니다. Windows 도메인/GMSA 인증의 경우 생략하십시오. 예를 들어

newrelic

<YOUR_DB_PASSWORD>

SQL Server 비밀번호입니다. Windows 도메인/GMSA 인증의 경우 생략합니다. 예를 들어

secret

<YOUR_DATABASE_NAME>

초기 연결 컨텍스트로 사용할 데이터베이스 이름입니다. 예를 들어

master

collection_interval

쿼리를 실행하고 메트릭을 수집하는 빈도입니다. 예:

30s

,

60s

<YOUR_CUSTOM_SQL>

실행할 SQL 쿼리입니다. 예를 들어, SELECT SUM(pages_kb) / 1024 AS size_mb, type FROM sys.dm_os_memory_clerks GROUP BY type

중요

사용자 지정 쿼리가 PII 또는 민감한 데이터를 수집하거나 노출하지 않도록 하십시오.

<YOUR_METRIC_NAME>

뉴렐릭에 표시될 메트릭 이름. 일관성을 위해

sqlserver.

접두사를 사용하십시오. 예를 들어

sqlserver.custom.wait_time_ms

<VALUE_COLUMN>

값이 메트릭 값이 되는 쿼리 결과의 열입니다. 예를 들어

wait_time_ms

<VALUE_TYPE>

값 열의 데이터 유형입니다. 옵션:

int

,

double

. 생략 시

int

로 기본 설정됩니다. 예를 들어

int

<DATA_TYPE>

OTLP 메트릭 유형입니다. 현재/스냅샷 값에

gauge

을(를) 사용하십시오. 누적 카운터에

sum

을(를) 사용하십시오. 생략할 경우

gauge

(으)로 기본 설정됩니다. 예를 들어

gauge

<UNIT>

메트릭 값의 측정 단위입니다. 뉴렐릭에서 메타데이터로 사용됩니다. 예를 들어

ms

,

By

,

s

,

%

,

1

<ATTRIBUTE_COLUMNS>

메트릭 레이블/차원이 되는 쿼리 결과의 열입니다. NRQL에서 필터링 및 패싯하는 데 사용됩니다. 예를 들어

["wait_type", "database_name"]

명명 규칙

뉴렐릭의 올바른 엔티티와 연결되려면 메트릭 이름이 sqlserver.로 시작해야 합니다. 다른 접두사가 있는 메트릭은 수집되지만 데이터베이스 엔티티 아래에 표시되지 않습니다.

엔티티 합성

데이터베이스 수신기가 사용하는 것과 동일한 값으로 host.name을(를) 설정하려면 resource/add_host 프로세서를 추가하십시오. 이것이 없으면 커스텀 지표가 데이터베이스 엔티티에 연결되지 않습니다.

processors: 섹션에 프로세서를 추가하십시오:

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

Pipeline 설정

기존 파이프라인과 함께 구성의 service.pipelines: 섹션에 metrics/custom 파이프라인을 추가하십시오:

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

중요

프로세서 목록에서 batch 앞에 resource/add_host을(를) 추가합니다.

데이터를 검증하기 위한 NRQL

수집기를 다시 시작한 후 다음을 실행하여 커스텀 지표가 수신되는지 확인하십시오:

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

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