콘텐츠로 이동

생성



POST /api/v1/aggs_to_metric/add

개요

메트릭 생성 규칙 생성

본문 요청 매개변수

매개변수 이름 유형 필수 설명
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/120/180/300/600/900/1200/1800 지원, 기본값 0은 지연 없음
예: 60
선택 값: [0, 60, 120, 180, 300, 600, 900, 1200, 1800]
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, 60, 120, 180, 300, 600, 900, 1200, 1800 지원, 기본값 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", "distribution", "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에 구성된 쿼리 정보를 기준으로 합니다. 선택 상자 모드에서 Distribution을 사용하는 경우 extend.funcName에 distribution을 전달하고, jsonScript.query.q에는 histogram_auto(<field>)를 사용합니다.


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

문서 평가

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