콘텐츠로 이동

생성



POST /api/v1/aggs_to_metric/add

개요

메트릭 생성 규칙 생성

Body 요청 매개변수

매개변수명 유형 필수 설명
extend json Y 추가 정보
빈 값 허용: False
jsonScript json Y 규칙 구성
빈 값 허용: False
jsonScript.type string Y 유형
예시: rumToMetric
빈 값 허용: False
빈 문자열 허용: False
선택 가능 값: ['logToMetric', 'rumToMetric', 'apmToMetric', 'metricToMetric', 'securityToMetric', 'dialingToMetric']
jsonScript.query json Y DQL 쿼리 관련 정보
빈 값 허용: False
jsonScript.metricInfo json Y 메트릭 구성 정보
빈 값 허용: False
jsonScript.metricInfo.every string Y 실행 주기, 단위 포함 정수 지원; 1m~59m 또는 1h~24h 선택 가능, cron 미지원
예시: 5m
빈 문자열 허용: False
jsonScript.metricInfo.metric string Y 메저먼트 이름
예시: cpu
빈 문자열 허용: False
jsonScript.metricInfo.metricField string Y 메트릭 이름
예시: load5s
빈 문자열 허용: False
jsonScript.metricInfo.unit string 단위
예시: load5s
빈 문자열 허용: True
jsonScript.metricInfo.desc string 설명
예시: xxx
빈 문자열 허용: True
jsonScript.metricInfo.delaySeconds integer 예약 작업 트리거 후 지연 실행 시간(초), 기본값 0은 지연 없음
예시: 60
$minValue: 0
$maxValue: 86400
skipRepeatNameCheck boolean 메저먼트/메트릭 중복 이름 검사 건너뛰기 여부, 기본 false, false는 중복 검사 수행, true는 중복 검사 건너뜀
예시: false
빈 값 허용: False

매개변수 추가 설명

요청 매개변수 설명.

1. jsonScript의 매개변수 설명

매개변수명 유형 필수 설명
type String 필수 데이터 소스 유형, 열거형
query Json 필수 쿼리 정보
metricInfo Json 필수 메저먼트 구성 정보

2. jsonScript.type 유형 설명

key 설명
rumToMetric RUM 메트릭 생성
apmToMetric APM 메트릭 생성
logToMetric Logging 메트릭 생성
metricToMetric Metric 메트릭 생성
securityToMetric 보안 점검 메트릭 생성

3. jsonScript.metricInfo 설명

매개변수명 유형 필수 설명
every String 필수 실행 주기, 단위 포함 정수 지원; 1m~59m 또는 1h~24h 선택 가능, cron 미지원
metric String 필수 메저먼트 이름
metricField String 필수 메트릭 이름
unit String 단위
desc String 설명
delaySeconds Integer 예약 작업 트리거 후 지연 실행 시간(초), 기본값 0은 지연 없음

3.1 jsonScript.metricInfo.unit 단위 설명

단위 형식: custom/["단위 유형","단위"], 예시: custom/["time","ms"]
사용자 정의 단위 형식: custom/["custom","사용자 정의 단위"], 예시: custom/["custom","tt"]
표준 단위 유형은 단위 설명 참고


4. jsonScript.query 설명

매개변수명 유형 필수 설명
q String 필수 쿼리 구문
qtype String 쿼리 구문 유형, dql/promql
qmode String 쿼리 유형, 선택 상자: selectorQuery, 직접 입력: customQuery, 이 필드는 프론트엔드 쿼리 표시 스타일에 영향을 줌

5. extend의 매개변수 설명

매개변수명 유형 필수 설명
filters Array[dict] 로그 유형이 아닌 경우의 필터 조건 목록
groupBy Array[str] 그룹화 정보
funcName string 필수 집계 함수(qmode가 선택 상자 모드인 경우 필수, 프론트엔드 표시에 사용), 열거형 값("count", "avg", "max", "sum", "min", "count_distinct", "p75", "p95", "p99")
fieldKey string 필수 집계 필드(qmode가 선택 상자 모드인 경우 필수, 프론트엔드 표시에 사용)
index string 로그 유형의 인덱스 이름
source string 이 필드는 유형별로 의미가 다름: 로그 유형: 소스(source), APM 유형: 서비스(service), RUM 유형: 애플리케이션(app_id), 메트릭 유형: 메저먼트, 보안 점검: 카테고리(category)
filterString string 로그 유형의 필터 조건, 원본 필터 문자열, 예시: 'host:hangzhou123 -service:coredns internal:true'

참고: extend 필드의 모든 필드는 프론트엔드 표시용으로만 사용되며, 실제 메트릭 생성 쿼리 구문은 jsonScript.query에 구성된 쿼리 정보를 기준으로 합니다.


6. extend.filters의 기본 구조 설명

매개변수명 유형 필수 설명
condition string 이전 필터 조건과의 관계, 선택 가능 값: and, or; 기본값: and
name string 필터링할 필드 이름
op string 연산자, 선택 가능 값: =, !=, match, not match
values array 값 목록
values[#] string/int/boolean 문자열/숫자/불리언 유형 가능, 데이터 비교 시 operation의 특성에 따라 values에서 특정 요소를 가져와 비교합니다. 예: operation=인 경우 values[0]만 연산에 참여

6.1 extend.filters 예시:

[
  {
      "name": "A",
      "condition": "and",
      "op": "match",
      "values": ["error"]
  },
  {
      "name": "tagC",
      "condition": "and",
      "op": "=",
      "values": ["ok"]
  }
]

7. 전체 구조 예시:

    {
      "extend": {
        "filters": [],
        "groupBy": ["host_ip"],
        "funcName": "count",
        "fieldKey": "*",
        "index": "default",
        "source": "*",
        "filterString": "host:hangzhou123 region:guanzhou"
      },
      "jsonScript": {
        "type": "logToMetric",
        "metricInfo": {
          "every": "1m",
          "metric": "test",
          "metricField": "001-test",
          "unit": "custom/[\"timeStamp\",\"ms\"]",
          "desc": "",
          "delaySeconds": 60
        },
        "query": {
          "q": "L('default')::RE(`.*`):(count(`*`)) { `host`='hangzhou123' and `region`='guanzhou'  } BY `host_ip`",
          "qtype": "dql"
        }
      }
    }

요청 예시

curl 'https://openapi.guance.com/api/v1/aggs_to_metric/add' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"extend":{"filters":[],"groupBy":["host_ip"],"funcName":"count","fieldKey":"*","index":"default","source":"*","filterString":"host:hangzhou123 region:guanzhou"},"jsonScript":{"type":"logToMetric","metricInfo":{"every":"1m","metric":"test","metricField":"001-test","unit":"custom/[\"timeStamp\",\"ms\"]","desc":"","delaySeconds":60},"query":{"q":"L('default')::RE(`.*`):(count(`*`)) { `host`='hangzhou123' and `region`='guanzhou'  } BY `host_ip`","qtype":"dql"}}}' \
--compressed

응답

{
    "code": 200,
    "content": {
        "workspaceUUID": "wksp_xxxx",
        "monitorUUID": "",
        "updator": null,
        "type": "aggs",
        "refKey": "",
        "secret": null,
        "jsonScript": {
            "type": "logToMetric",
            "metricInfo": {
                "every": "1m",
                "metric": "test",
                "metricField": "001-test",
                "unit": "custom/[\"timeStamp\",\"ms\"]",
                "desc": "",
                "delaySeconds": 60
            },
            "query": {
                "q": "L('default')::RE(`.*`):(count(`*`)) { `host`='hangzhou123' and `region`='guanzhou'  } BY `host_ip`",
                "qtype": "dql"
            }
        },
        "crontabInfo": {
            "id": "cron-4VdviPep3oHc",
            "crontab": null
        },
        "extend": {
            "filters": [],
            "groupBy": [
                "host_ip"
            ],
            "funcName": "count",
            "fieldKey": "*",
            "index": "default",
            "source": "*",
            "filterString": "host:hangzhou123 region:guanzhou"
        },
        "createdWay": "manual",
        "isLocked": false,
        "openPermissionSet": false,
        "permissionSet": [],
        "id": null,
        "uuid": "rul_xxxx",
        "status": 0,
        "creator": "acnt_xxxx",
        "createAt": 1734594428,
        "deleteAt": -1,
        "updateAt": null,
        "__operation_info": {
            "uuid": "rul_xxxx"
        }
    },
    "errorCode": "",
    "message": "",
    "success": true,
    "traceId": "1111139030457458757"
}

문서 평가

이 페이지가 도움이 되었나요?