스크립트 개발 / 커넥터 객체 DFF.CONN / DataKit, DataWay
DataKit, DataWay 커넥터 작업 객체는 주로 데이터 쓰기 메서드를 제공합니다.
DFF.CONN(...) 매개변수는 다음과 같습니다:
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
connector_id |
str | 필수 | 커넥터 ID |
source |
str | None |
커넥터 Source 재정의 혼동을 피하기 위해 "mysql" 등의 수집기 이름을 입력하지 마십시오 |
timeout |
int/float | 10 |
현재 작업 객체의 기본 HTTP 요청 타임아웃(초) |
split_size |
int | 100 |
라인 프로토콜 일괄 쓰기 시 요청당 데이터 포인트 수 |
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
connector_id |
str | 필수 | 커넥터 ID |
token |
str | None |
커넥터 Token 재정의 |
timeout |
int/float | 10 |
현재 작업 객체의 기본 HTTP 요청 타임아웃(초) |
split_size |
int | 100 |
라인 프로토콜 일괄 쓰기 시 요청당 데이터 포인트 수 |
- 일반적인 데이터 보고에는
.write_by_category(...),.write_by_category_many(...)메서드를 사용하십시오 - 일반적으로 DQL 문을 실행하려면
.query(...)메서드를 사용하십시오 - GET 요청을 직접 보내려면
.get(...)메서드를 사용하십시오 - POST 요청을 직접 보내려면
.post_json(...)메서드를 사용하십시오 - 라인 프로토콜 데이터를 직접 보내려면
.post_line_protocol(...)메서드를 사용하십시오
이 커넥터는 본질적으로 HTTP 요청의 캡슐화입니다
DataKit과 DataWay의 대부분의 인터페이스는 완전히 동일합니다.
DataKit, DataWay 인터페이스가 자주 변경되므로 본 커넥터는 모든 인터페이스를 일대일로 캡슐화하지 않습니다.
DataKit, DataWay의 서로 다른 버전에서는 보고 데이터에 대해 서로 다른 요구 사항이나 제약이 있을 수 있으므로 관련 문서를 읽은 후 본 커넥터를 사용하십시오.
자세한 문서는 다음을 참조하십시오:
.write_by_category(...)
DataKit, DataWay에 특정 유형의 데이터를 씁니다. 매개변수는 다음과 같습니다:
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
category |
str | 필수 | 데이터 유형. 자세한 내용은 TrueWatch 문서 / DataKit API 참조 |
measurement |
str | 필수 | 지표 세트 이름 |
tags |
dict | None |
태그. 키 이름과 키 값은 모두 문자열이어야 합니다 |
fields |
dict | 필수 | 지표. 키 이름은 반드시 문자열이어야 합니다. 값은 문자열, 정수, 부동소수점, 불리언 또는 요소 유형이 일치하는 위 유형들의 목록일 수 있습니다 |
timestamp |
int/long/float | {현재 시간} | 타임스탬프. 초/밀리초/마이크로초/나노초를 지원합니다 |
headers |
dict | None |
요청 Header 매개변수 |
timeout |
int/float | None |
이번 요청의 타임아웃 시간. 생략 시 작업 객체의 기본값을 사용합니다 |
headers매개변수는 3.3.0에서 추가되었습니다
| 예시 | |
|---|---|
1 2 3 | |
.write_by_category_many(...)
write_by_category(...)의 일괄 버전입니다. 매개변수는 다음과 같습니다:
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
category |
str | 필수 | 데이터 유형. 자세한 내용은 TrueWatch 문서 / DataKit API 참조 |
data |
list | 필수 | 데이터 포인트 목록 |
data[#].measurement |
str | 필수 | 지표 세트 이름 |
data[#].tags |
dict | None |
태그. 키 이름과 키 값은 모두 문자열이어야 합니다 |
data[#].fields |
dict | 필수 | 지표. 키 이름은 문자열이어야 하며, 값은 문자열, 정수, 부동소수점, 부울 값 또는 요소 유형이 일치하는 위 유형들의 리스트일 수 있습니다 |
data[#].timestamp |
int/long/float | {현재 시간} | 타임스탬프. 초/밀리초/마이크로초/나노초를 지원합니다 |
headers |
dict | None |
요청 Header 매개변수 |
timeout |
int/float | None |
이번 요청의 타임아웃 시간. 생략 시 작업 객체의 기본값을 사용합니다 |
headers매개변수는 3.3.0에서 추가되었습니다
| 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
.write_metric(...) / .write_point(...)
..write_metric(...)는 .write_by_category(category='metric', ...)와 동등합니다. .write_point(...)는 이전 버전 호환 별칭입니다.
| 예시 | |
|---|---|
1 | |
.write_metric_many(...) / .write_metrics(...) / .write_points(...)
..write_metric_many(...)는 .write_by_category_many(category='metric', ...)와 동등합니다. .write_metrics(...)와 .write_points(...)는 이전 버전 호환 별칭입니다.
| 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
.write_logging(...) / .write_logging_many(...)
.write_logging(...)는 .write_by_category(category='logging', ...)와 동등합니다. .write_logging_many(...)는 이에 대응하는 일괄 버전입니다.
.query(...)
이 메서드는 DataKit, DataWay API DQL 쿼리 인터페이스의 매개변수를 지원합니다
자세한 문서는 TrueWatch 문서 / DataKit API 문서에서 확인하세요.
이 메서드는 단지 HTTP 요청의 래퍼일 뿐입니다
이 메서드는 본질적으로 DataKit, DataWay에 HTTP 요청을 보낼 뿐이며, 반환 내용은 DataKit, DataWay 및 백엔드 데이터 소스에 따라 달라집니다.
반환 결과에 대해 의문이 있다면 requests를 사용하여 DataKit, DataWay에 직접 요청을 보내볼 수 있습니다:
| requests를 사용한 API 호출 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
DataKit, DataWay를 통해 DQL 문을 실행합니다. 매개변수는 다음과 같습니다.
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
dql |
str | 필수 | DQL 문 |
dict_output |
bool | False |
데이터를 dict로 자동 변환할지 여부. |
raw |
bool | False |
원시 응답을 반환할지 여부. 활성화하면 dict_output 매개변수가 무효화됩니다. |
all_series |
bool | False |
slimit 및 soffset를 사용하여 자동으로 페이지를 넘겨 전체 타임라인을 가져올지 여부. |
token |
str | None |
DataKit에서만 사용되는 작업 공간 Token이며, DataWay는 작업 객체를 가져올 때 Token을 설정해야 합니다 |
timeout |
int/float | None |
이번 요청의 타임아웃 시간. 생략 시 작업 객체의 기본값을 사용합니다 |
{DataKit, DataWay 네이티브 매개변수} |
- | - | queries[0].{DataKit, DataWay 네이티브 매개변수}로 전달됩니다 |
all_series를 활성화하면 페이지당 고정적으로 500개의 타임라인을 쿼리합니다. 메트릭 쿼리는 최대 20페이지, 다른 쿼리는 최대 5페이지를 요청할 수 있습니다.
DataWay는 쿼리를 실행하기 전에 반드시 Token이 있어야 합니다. 커넥터 구성 또는 DFF.CONN(..., token='...')에서 설정해야 하며, .query(...)에 token을 중복으로 전달하지 마세요.
| 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
| 출력 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
| 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
| 출력 예시 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
.get(...)
이 방법은 일반적인 처리 방법입니다
구체적인 매개변수 형식, 내용 등은 TrueWatch 문서 / DataKit API를 참조하세요
DataKit, DataWay에 GET 요청을 보냅니다. 매개변수는 다음과 같습니다.
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
path |
str | 필수 | 요청 경로 |
query |
dict | None |
요청 URL 매개변수 |
headers |
dict | None |
요청 Header 매개변수 |
timeout |
int/float | None |
이번 요청의 타임아웃 시간. 생략 시 작업 객체의 기본값을 사용합니다 |
(status_code, result)를 반환합니다. 응답 본문이 JSON으로 파싱 가능한 경우 result는 해당 객체이고, 그렇지 않으면 텍스트 또는 원시 내용입니다.
.post_json(...)
이 방법은 일반적인 처리 방법입니다
구체적인 매개변수 형식, 내용 등은 TrueWatch 문서 / DataKit API를 참조하세요
DataKit, DataWay에 JSON 형식으로 POST 요청을 보냅니다. 매개변수는 다음과 같습니다.
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
path |
str | 필수 | 요청 경로 |
json_obj |
dict/list | 필수 | 보내야 하는 JSON 객체 |
query |
dict | None |
요청 URL 매개변수 |
headers |
dict | None |
요청 Header 매개변수 |
timeout |
int/float | None |
이번 요청의 타임아웃 시간. 생략 시 작업 객체의 기본값을 사용합니다 |
path매개변수는 1.6.8 버전에서 첫 번째 매개변수로 조정되었습니다.
(status_code, result)를 반환합니다.
.post_line_protocol(...)
이 방법은 일반적인 처리 방법입니다
구체적인 매개변수 형식, 내용 등은 TrueWatch 문서 / DataKit API를 참조하세요
DataKit, DataWay에 line protocol 형식으로 POST 요청을 보냅니다. 매개변수는 다음과 같습니다.
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
path |
str | 필수 | 요청 경로 |
points |
dict/list | 필수 | 단일 데이터 포인트 또는 데이터 포인트 목록 |
points[#].measurement |
str | 필수 | 메트릭 집합 이름 |
points[#].tags |
dict | None |
태그. 키 이름과 키 값은 모두 문자열이어야 합니다 |
points[#].fields |
dict | 필수 | 메트릭. 키 이름은 반드시 문자열이어야 합니다. 값은 문자열, 정수, 부동소수점, 불리언 또는 요소 유형이 일치하는 위 유형들의 목록일 수 있습니다 |
points[#].timestamp |
int/long/float | {현재 시간} | 타임스탬프, 초/밀리초/마이크로초/나노초 지원 |
query |
dict | None |
요청 URL 매개변수 |
headers |
dict | None |
요청 Header 매개변수 |
timeout |
int/float | None |
이번 요청의 타임아웃 시간. 생략 시 작업 객체의 기본값을 사용합니다 |
path매개변수는 1.6.8 버전에서 첫 번째 매개변수로 조정되었습니다.
배치 데이터는 split_size 단위로 분할 전송됩니다. 이 메서드는 마지막 분할 요청의 (status_code, result)를 반환합니다. 분할 요청 중 하나라도 실패하면 예외를 발생시키고 이후 전송을 중지합니다.