目录
- 1、filter过滤语法
- 1.1 精准匹配
- 1.2 正则匹配
- 1.3 通配符匹配
 
- 完整示例
- 1、 展示应用app的CPU利用率监控
- 2)展示应用app的在线核数
 
1、filter过滤语法

1.1 精准匹配
-  literal_or : tagv的过滤规则: 精确匹配多项迭代值,多项迭代值以’|'分隔,大小写敏感 
-  iliteral_or: tagv的过滤规则: 精确匹配多项迭代值,多项迭代值以’|'分隔,忽略大小写 
1.2 正则匹配
- regexp: tagv的过滤规则: 正则表达式匹配
- OpenTSDB的正则表达式语法可能与其他数据库不同
1)匹配出以 XX开头
例如,要过滤出字符串以"ab_123"开头的数据,如下:
{
	"type": "regexp",
	"tagk": "<标签键>",
	"filter": "^(str_pre)",
	"groupBy": false
}
{
	"type": "regexp",
	"tagk": "app_id",
	"filter": "^(ab_123)",
	"groupBy": false
}
<标签键>是过滤的标签键,正则表达式,^(ab_123)使用了负向前瞻断言(ab_123),表示以"ab_123"开头的字符串。
- 匹配出 以XX开头 或以YY开头
例如,要过滤出字符串以"ab_123"开头或以"ab_666"的数据,如下:
{
	"type": "regexp",
	"tagk": "<标签键>",
	"filter": "^(str_pre)",
	"groupBy": false
}
{
	"type": "regexp",
	"tagk": "app_id",
	"filter": "^(ab_123|ab_666)",
	"groupBy": false
}
<标签键>是过滤的标签键,正则表达式,^(ab_123|ab_666)使用了括号和管道符合,表示以"ab_123"或"ab_666"开头的字符串
3)匹配出 不以 XX开头
例如,要过滤出字符串不以"ab_123"或"ab_666"开头的数据,如下:
{
	"type": "regexp",
	"tagk": "<标签键>",
	"filter": "^(?!str_pre)",
	"groupBy": false
}
{
	"type": "regexp",
	"tagk": "app_id",
	"filter": "^(?!ab_123|ab_666)",
	"groupBy": false
}
<标签键>是过滤的标签键,正则表达式,^(?!ab_123|ab_666)使用了负向前瞻断言(?!ab_123|ab_666),表示不以"ab_123"或""ab_666"开头的字符串。
1.3 通配符匹配
- wildcard: tagv的过滤规则: 通配符匹配,大小写敏感
- iwildcard: tagv的过滤规则: 通配符匹配,忽略大小写
- not_literal_or: tagv的过滤规则: 通配符取非匹配,大小写敏感
- not_iliteral_or: tagv的过滤规则: 通配符取非匹配,忽略大小写
完整示例
1、 展示应用app的CPU利用率监控
$app_id 为变量,可以写静态,也可以动态
{
  "time": {
    "aggregator": "sum",
    "granularity": "20s"
  },
  "filters": [
    {
      "tags": [
        {
          "type": "iliteral_or",
          "tagk": "app_id",
          "filter": "$app_id",
          "groupBy": false
        },
        {
          "type": "iliteral_or",
          "tagk": "priority",
          "filter": "Product",
          "groupBy": false
        }
      ],
      "id": "app_info_i"
    }
  ],
  "metrics": [
    {
      "id": "app_used",
      "metric": "docker.cpu.used",
      "filter": "app_info_i"
    },
    {
      "id": "app_quota",
      "metric": "docker.cpu.quota",
      "filter": "app_info_i"
    }
  ],
  "expressions": [
    {
      "id": "app_cpu_rate",
      "expr": "(app_used/app_quota)*100"
    }
  ],
  "outputs": [
    {
      "id": "app_cpu_rate",
      "alias": "XXXCPU利用率"
    }
  ]
}
2)展示应用app的在线核数
{
  "time": {
    "aggregator": "sum",
    "granularity": "1m"
  },
  "limit": "avg:top:500",
  "filters": [
    {
      "tags": [
        {
          "type": "iliteral_or",
          "tagk": "app_id",
          "filter": "$app_id",
          "groupBy": false
        },
        {
          "type": "iliteral_or",
          "tagk": "priority",
          "filter": "Product",
          "groupBy": false
        }
      ],
      "id": "app_info_i"
    }
  ],
  "metrics": [
    {
      "id": "app_quota",
      "metric": "docker.cpu.quota",
      "filter": "app_info_i"
    }
  ],
  "expressions": [
    {
      "id": "quota_e",
      "expr": "app_quota/100"
    }
  ],
  "outputs": [
    {
      "id": "quota_e",
      "alias": "cpu(core)"
    }
  ]
}



















