콘텐츠로 이동

수정



POST /api/v1/aggs_to_metric/{rule_uuid}/modify

개요

메트릭 생성 규칙 수정

경로 파라미터

파라미터 이름 유형 필수 설명
rule_uuid string Y 집계 메트릭 생성 ID

본문 요청 파라미터

파라미터 이름 유형 필수 설명
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 필수 설명
type String 필수 데이터 소스 유형, 열거형
query Json 필수 쿼리 정보
metricInfo Json 필수 메저먼트 구성 정보

2. jsonScript.type 유형 설명

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

3. jsonScript.metricInfo 유형 설명

파라미터 이름 type 필수 설명
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 유형 설명

파라미터 이름 type 필수 설명
q String 필수 쿼리 문
qtype String 쿼리 구문 유형, dql/promql
qmode String 쿼리 유형. 선택 상자: selectorQuery, 직접 작성: customQuery. 이 필드는 프런트엔드 쿼리 재표시 스타일에 영향을 줌

5. extend 파라미터 설명

파라미터 이름 type 필수 설명
filters Array[dict] 로그 유형이 아닌 경우의 필터 조건 목록
groupBy Array[str] 그룹화 정보
funcName string 필수 집계 함수, 열거 값("count", "avg", "max", "sum", "min", "count_distinct", "distribution", "p75", "p95", "p99")
fieldKey string 필수 집계 필드
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 본문 구조 설명

파라미터 이름 type 필수 설명
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/rul_xxxx/modify' \
-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"
}

문서 평가

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