Oracle 데이터베이스 데이터 원본에 연결 - Amazon Managed Grafana

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Oracle 데이터베이스 데이터 원본에 연결

참고

이 데이터 소스는 Grafana Enterprise 전용입니다. 자세한 정보는 엔터프라이즈 플러그인 액세스 관리을 참조하세요.

또한 버전 9 이상을 지원하는 작업 공간에서는 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 정보는 플러그인으로 작업 영역 확장을 참조하세요.

데이터 소스 추가

Grafana 왼쪽 패널에서 데이터 소스를 선택합니다.

데이터소스 추가를 선택합니다.

oracle를 입력하여 데이터 원본을 찾습니다.

Oracle 서버 세부 정보를 입력합니다.

연결할 포트 번호, 사용자 이름 및 암호와 함께 호스트 이름 (또는 IP 주소) 을 입력합니다.

tnsnames 옵션 토글을 사용하면 tnsnames.ora 구성 파일에 있는 유효한 모든 항목을 기본 인증과 함께 사용할 수 있습니다.

이전 예와 비슷하지만 인증에 Kerberos를 사용합니다. kerberos를 사용하도록 OS 또는 Docker 컨테이너를 구성하는 방법에 대한 자세한 내용은 kerberos별 설정 가이드를 참조하십시오.

선택적으로 Oracle 서버에 연결하는 데 사용되는 시간대와 시간대 인식 매크로에서 사용할 시간대를 변경할 수 있습니다. 기본 설정은 UTC입니다.

데이터 원본을 저장하고 테스트하면 “데이터베이스 연결 확인”이라는 녹색 메시지가 표시됩니다.

사용량

매크로

구문을 단순화하고 날짜 범위 필터와 같은 동적 부분을 허용하기 위해 쿼리에 매크로가 포함될 수 있습니다. 열 이름은 큰따옴표 () 안에 포함되어야 합니다. "

매크로 예제 설명
*$__time (날짜 열) * | 열 이름을 `time`으로 바꾸는 표현식으로 대체됩니다. 예: `날짜/열을 시간으로 나타낸다` *$__TimeEpoch (날짜 열) * 열 이름을 바꾸고 값을 유닉스 타임스탬프 (밀리초 단위) 로 변환하는 표현식으로 대체됩니다. time
*$__TimeFilter (DateColumn) * | 지정된 열 이름을 사용하는 시간 범위 필터로 대체됩니다. 예: `TO_DATE ('19700101', 'yyyymmdd') + (1/24/60/60/1000) * 1500376552001과 TO_DATE ('19700101', 'yyyymmdd') + (1/24/60/100) * 1500376552002` *$__TimeFrom () * 현재 활성 시간 선택이 DATE 데이터 유형으로 변환된 시작 부분으로 대체됩니다. 예를 들어 TO_DATE('19700101','yyyymmdd') + (1/24/60/60/1000) * 1500376552001입니다.
*$__timeTo () * | 현재 활성화된 시간 선택이 'DATE' 데이터 유형으로 변환된 종료 시간으로 대체됩니다. *$__타임 그룹 (날짜 열, “5m”) * GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다.
*$__타임 그룹 (날짜 열, "5m "[, 값 채우기]) * GROUP BY 절에서 사용할 수 있는 표현식으로 대체됩니다. FillValue를 NULL 또는 부동 값으로 제공하면 시간 범위의 빈 시리즈가 해당 값으로 자동으로 채워집니다. 예를 들어, t i m e G r o u p c r e a t, '1 m ′, 0을 예로 들 수 있습니다. *__타임그룹 (날짜 열, “5m”, 0) *.
* t i m e G r o u p (d a t e C o l u m n, '5 m', N U L L) * | S a m e a b o v e eb u t n U L l w i l l b e u s e e s e e s s v a l u e e f o r m i s i n g모든 것이 여기에 있습니다. *__시간 그룹 (날짜 열, “5분”, 이전) * 위와 동일하지만 아직 값이 보이지 않으면 해당 시리즈의 이전 값이 채우기 값으로 사용됩니다. NULL이 사용됩니다.
*$__ unixEpochFilter (DateColumn) * | 시간이 유닉스 타임스탬프 (밀리초) 로 표시되는 지정된 열 이름을 사용하는 시간 범위 필터로 대체됩니다. 예를 들어, `날짜 열 >= 1500376552001 및 날짜 열 <= 1500376552002` *$__ () * unixEpochFrom 현재 활성화된 시간 선택 항목의 시작 부분이 유닉스 타임스탬프로 대체됩니다. 예를 들어 1500376552001입니다.
*$__unixEpochTo()* 현재 활성 시간 선택의 끝 부분이 유닉스 타임스탬프로 대체됩니다. 예를 들어 1500376552002입니다.

플러그인은 중괄호를 사용한 표기법도 지원합니다. {} 매개변수 내에서 쿼리가 필요한 경우 이 표기법을 사용하십시오.

참고

쿼리당 하나의 표기법 유형을 사용하십시오. 쿼리에 중괄호가 필요한 경우 쿼리의 모든 매크로에서 중괄호를 사용해야 합니다.

$__timeGroup{"dateColumn",'5m'} $__timeGroup{SYS_DATE_UTC("SDATE"),'5m'} $__timeGroup{FROM_TZ(CAST("SDATE" as timestamp), 'UTC'), '1h'}

쿼리 편집기에는 쿼리가 실행된 후 패널 편집 모드에서 표시되는 생성된 SQL 링크가 있습니다. 링크를 선택하면 링크가 확장되어 실행된 원시 보간 SQL 문자열이 표시됩니다.

테이블 쿼리

쿼리 형식 옵션을 테이블로 설정하면 기본적으로 모든 유형의 SQL 쿼리를 수행할 수 있습니다. 테이블 패널에는 쿼리가 반환하는 열과 행의 결과가 자동으로 표시됩니다. 일반 as SQL 열 선택 구문을 사용하여 테이블 패널 열의 이름을 제어할 수 있습니다.

시계열 쿼리

예를 들어 그래프 패널에서 사용하기 위해 형식을 시계열로 설정하는 경우 쿼리는 SQL 날짜/시간 또는 유닉스 에포크를 초 단위로 나타내는 숫자 데이터 유형을 time 반환하는 이름이 지정된 열을 반환해야 합니다. Grafana는 명시적인 시간대가 없는 날짜 및 타임스탬프 열을 UTC로 해석합니다. time및 를 제외한 모든 열은 값 열로 metric 취급됩니다. 값 열의 지표 이름으로 사용되는 이름이 지정된 metric 열을 반환할 수 있습니다.

다음 코드 예제는 metric 열을 보여줍니다.

SELECT $__timeGroup("time_date_time", '5m') AS time, MIN("value_double"), 'MIN' as metric FROM test_data WHERE $__timeFilter("time_date_time") GROUP BY $__timeGroup("time_date_time", '5m') ORDER BY time

추가 쿼리 — 사용 oracle-fake-data-gen

SELECT $__timeGroup("createdAt", '5m') AS time, MIN("value"), 'MIN' as metric FROM "grafana_metric" WHERE $__timeFilter("createdAt") GROUP BY $__timeGroup("createdAt", '5m') ORDER BY time

다음 코드 예제는 가짜 데이터 시계열을 보여줍니다.

SELECT "createdAt", "value" FROM "grafana_metric" WHERE $__timeFilter("createdAt") ORDER BY "createdAt" ASC
SELECT "createdAt" as time, "value" as value FROM "grafana_metric" WHERE $__timeFilter("createdAt") ORDER BY time ASC

다음 예제는 유용한 테이블 결과를 보여줍니다.

select tc.table_name Table_name ,tc.column_id Column_id ,lower(tc.column_name) Column_name ,lower(tc.data_type) Data_type ,nvl(tc.data_precision,tc.data_length) Length ,lower(tc.data_scale) Data_scale ,tc.nullable nullable FROM all_tab_columns tc ,all_tables t WHERE tc.table_name = t.table_name

템플릿 작성

메트릭 쿼리에서 서버, 애플리케이션, 센서 이름 등을 하드코딩하는 대신 변수를 대신 사용할 수 있습니다. 변수는 대시보드 상단의 드롭다운 선택 상자로 표시됩니다. 이 드롭다운 상자를 사용하면 대시보드에 표시되는 데이터를 쉽게 변경할 수 있습니다.

쿼리 변수

해당 유형의 템플릿 변수를 추가하면 측정 이름Query, 키 이름 또는 키 값 등을 드롭다운 선택 상자로 표시하는 항목을 반환할 수 있는 Oracle 쿼리를 작성할 수 있습니다.

예를 들어, 템플릿 변수 쿼리 설정에서 이와 같은 쿼리를 지정하면 테이블의 hostname 열에 대한 모든 값을 포함하는 변수를 만들 수 있습니다.

SELECT "hostname" FROM host

쿼리는 여러 열을 반환할 수 있으며 Grafana는 해당 열을 기반으로 목록을 자동으로 생성합니다. 예를 들어 다음 쿼리는 및 값이 포함된 목록을 반환합니다. hostname hostname2

SELECT "host.hostname", "other_host.hostname2" FROM host JOIN other_host ON host.city = other_host.city

$__timeFilter("time_column")쿼리에서와 같이 시간 범위 종속 매크로를 사용하려면 템플릿 변수의 새로 고침 모드를 On Time Range Change로 설정해야 합니다.

SELECT "event_name" FROM event_log WHERE $__timeFilter("time_column")

또 다른 옵션은 키/값 변수를 만들 수 있는 쿼리입니다. 쿼리는 이름이 __text 및 인 열 두 개를 반환해야 합니다. __value __text열 값은 고유해야 합니다 (고유하지 않으면 첫 번째 값이 사용됨). 드롭다운 목록의 옵션에는 텍스트로 친숙한 이름을 텍스트로, id를 값으로 사용할 수 있는 텍스트와 값이 있습니다. 다음 예제 코드는 hostname id 텍스트와 값을 포함하는 쿼리를 보여줍니다.

SELECT "hostname" AS __text, "id" AS __value FROM host

중첩 변수를 만들 수도 있습니다. 이름이 지정된 region 다른 변수가 있는 경우를 예로 들 수 있습니다. 그러면 다음과 같은 쿼리를 사용하여 hosts 변수에 현재 선택한 지역의 호스트만 표시하도록 할 수 있습니다. 값이 여러 개인 변수인 경우 region 여러 값을 = 비교하는 대신 IN 비교 연산자를 사용하십시오.

SELECT "hostname" FROM host WHERE region IN('$region')

쿼리에 변수 사용

템플릿 변수 값은 템플릿 변수가 multi-value a인 경우에만 인용됩니다.

변수가 다중 값 변수인 경우 여러 값을 = 비교하는 대신 IN 비교 연산자를 사용하십시오.

다음과 같은 두 가지 구문이 있습니다.

$<varname>이름이 지정된 hostname 템플릿 변수를 사용한 예:

SELECT "atimestamp" as time, "aint" as value FROM table WHERE $__timeFilter("atimestamp") AND "hostname" IN('$hostname') ORDER BY "atimestamp" ASC

[[varname]]이름이 지정된 템플릿 변수를 사용한 예hostname:

SELECT "atimestamp" as time, "aint" as value FROM table WHERE $__timeFilter("atimestamp") AND "hostname" IN('[[hostname]]') ORDER BY atimestamp ASC