更新时间:2025-08-30 GMT+08:00
分享

创建指标

功能介绍

创建指标

埋点指标上报格式:

csb_sa_metric_track_soc_flow_yyyy.MM.dd_ttl180 { "metric_name": "soc_flow", // 指标名称 "data_type": "TRACK", // 指标类型,TRACK:埋点指标 "report_period": 86400, // 上报周期,秒 "report_time": 1662368225038, "data": { // 按照各子系统自身定义上报 "msg_id": "7ffe0474-5254-4783-bb1d-c014a8c791fe-soc", "project_id": "9391876dbccb44319e09ecc617481c93", "domain_id": "dfaf9864b95c448797b5dc0f00709a55", "resource_id": "xxxx", "resource_type": "xxxx", "workspace_id": "988ca0eb-b81e-4c24-9a85-d83ece4525ee", "flow": 123456789, //long ,基于project_id聚合 "flow_type": 0/1, //0: 消息事件数,1:数据流量 "flow_unit": "byte"//默认值为空字符串:代表条/个, ----> soc对应的消息事件数,该字段就是空字符串"" } }

调用方法

请参见如何调用API

URI

POST /v1/{project_id}/workspaces/{workspace_id}/soc/metrics

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目ID,用于明确项目归属,配置后可通过该ID查询项目下资产,可以通过调用API获取,也可以从控制台获取。获取项目ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

workspace_id

String

参数解释:

工作空间id。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

用户Token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。获取用户Token

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

content-type

String

参数解释:

内容类型

  • application/json;charset=UTF-8 普通API请求的类型

约束限制:

不涉及

取值范围:

  • application/json;charset=UTF-8

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

metric_name

String

指标名称

metric_type

String

指标类型 衍生指标DERIVED(单个CBSL或API查询可获取的,包括限定条件)、复合指标COMPOUND(需多个原子指标运算获取的)

data_type

String

数据类型, TRACK:埋点指标,STATISTICS:统计指标,LOGISTIC:逻辑指标

metric_dimension

Integer

指标结果维度,0维:单个数字,2维:图表或表格,3+维:多标签图表, metric_type为DERIVED必填,为COMPOUND选填(COMPOUND时必为0)

cache_ttl

Long

缓存生命周期,单位s

report_period

Long

上报周期,埋点指标时必填,单位s

is_built_in

Boolean

是否为系统指标

effective_column

String

生效的列, 当有该参数时,使用指定列作为指标数据结果

max_query_range

Integer

指标支持的最大检索范围,单位:天;复合指标时,数值为derived_metrics列表元素中最小值

derived_metrics

Array of derived_metrics objects

衍生指标列表,非复合指标时只有一个元素,复合指标时,为各衍生指标的定义

compound_expression

String

metric_type为DERIVED时填写, 复合指标的表达式

metric_format

Array of MetricFormat objects

指标格式

metric_expand_dim

MetricDimensionExpandParam object

指标维度扩充参数

version

String

安全云脑版本

表4 derived_metrics

参数

是否必选

参数类型

描述

metric_dimension

Integer

衍生指标结果维度,0维:单个数字,2维:图表或表格,3+维:多标签图表

max_query_range

Integer

指标支持的最大检索范围,单位:天;

date_start

String

指标查询范围相对起始时间 datemath表达式

date_end

String

指标查询范围相对截止时间 datemath表达式

date_format

String

时间格式,epoch_millis;epoch_second;yyyy-MM-dd'T'HH:mm:ss.SSSZ

query_type

String

获取指标结果方式,cbsl, api, dsl, sql

query_function

String

获取指标结果的方法,转义成字符串, 共四种query方式:CBSL、API、DSL、SQL

  • query_type为CBSL时,function传入dataspace_id,pipe_id,query,sort, from, to

    样例:

    {\"dataspace_id\":\"3939573a-12a0-436f-b0e5-ab2872a1fde9\",\"pipe_id\":\"9db9d8a6-d9e6-4b32-990e-40f0afe4655d\",\"query\":\"* | select ack_pps, device_type as type\",\"sort\":\"desc\",\"from\":${date_from},\"to\":${date_to}}

    转义前:

    {
        "dataspace_id":"3939573a-12a0-436f-b0e5-ab2872a1fde9",
        "pipe_id":"9db9d8a6-d9e6-4b32-990e-40f0afe4655d",
        "query":"* | select ack_pps, device_type as type",
        "sort":"desc",
        "from": ${date_from},
        "to": ${date_to}
    }
  • query_type为API时,function传入api method、url、path_params、headers、response_parser(解析API返回值所需,定义label和json_path将返回值解析为二维表格,label为表头,json_path为字段提取路径)

    样例:

    {\"method\":\"POST\",\"uri\":\"/v1/${project_id}/只填写uri/不带域名/xxx\",\"headers\":{\"X-Auth-Token\":\"${project_token}\"},\"response_parser\":{\"labels\":[\"攻击类型\",\"攻击源\",\"时间\"],\"json_path\":[\"$.data[:].type\",\"$.data[:].source\",\"$.data[:].time\"]}}

    转义前:

    {
        "method":"POST",
        "uri":"/v1/${project_id}/只填写uri/不带域名/xxx",
        "headers":{
            "X-Auth-Token": "${project_token}"
        },
        "response_parser":{
            "labels":[
                "攻击类型",
                "攻击源",
                "时间"
            ],
            "json_path":[
                "$.data[:].type",
                "$.data[:].source",
                "$.data[:].time"
            ]
        }
    }
  • query_type为DSL时,指定index, dsl(转义成字符串), response_parser

    样例:

    {\"index\":\"index_xxx_*\",\"dsl\":\"{\\\"query\\\":{\\\"match_all\\\":{}}}\",\"response_parser\":{\"labels\":[\"攻击类型\",\"攻击源\",\"时间\"],\"json_path\":[\"$.data[:].type\",\"$.data[:].source\",\"$.data[:].time\"]}}

    转义前:

    {
        "index":"index_xxx_*",
        "dsl":"{\"query\":{\"match_all\":{}}}",
        "response_parser":{
            "labels":[
                "攻击类型",
                "攻击源",
                "时间"
            ],
            "json_path":[
                "$.data[:].type",
                "$.data[:].source",
                "$.data[:].time"
            ]
        }
    }
  • query_type为sql时,指定opendistro sql插件查询json(转义成字符串)

    样例:

    {\"query\":\"SELECT count(1) as count , msg.DstPort FROM isap_log_nip_ttl* where oct >= TIMESTAMP(\\\"${date_from}\\\") and oct <= TIMESTAMP(\\\"${date_to}\\\") group by msg.DstPort order by count desc limit 5\"}

    转义前:

    {
        "query":"SELECT count(1) as count , msg.DstPort FROM isap_log_nip_ttl* where oct >= TIMESTAMP(\"${date_from}\") and oct <= TIMESTAMP(\"${date_to}\") group by msg.DstPort order by count desc limit 5"
    }
表5 MetricFormat

参数

是否必选

参数类型

描述

data

String

数据格式

display

String

显示格式

display_param

Map<String,String>

显示参数

data_param

Map<String,String>

数据参数

表6 MetricDimensionExpandParam

参数

是否必选

参数类型

描述

labels

Array of strings

维度扩充标签

functions

Array of strings

维度扩充方法,填写指标数据面内置方法, 参数index从1开始

响应参数

状态码:200

表7 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

状态码:400

表8 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表9 响应Body参数

参数

参数类型

描述

code

String

参数解释:

错误码

取值范围:

不涉及

message

String

参数解释:

错误描述

取值范围:

不涉及

请求示例

响应示例

状态码

状态码

描述

200

创建成功

400

错误响应

错误码

请参见错误码

相关文档