Files
kubevela/docs/examples/velaql-views/usage.md
2022-06-15 19:05:08 +08:00

2.9 KiB

Usage

You can use velaQL with a syntax similar to promeQL.

The syntax format of velaQL is as follows:

view{parameter1=value1}.statusKey
  1. view represents different query views, we have built a few views: component-pod-view,pod-view,resource-view
  2. parameter1=value1 represents query configuration items
  3. statusKey represents the aggregate result of the query, default is status

component-pod-view

describe

List the pods created by specified component

parameter

parameter: {
	appName:    string // application name
	appNs:      string // application namespace
	name:       string // component name
	cluster?:   string // cluster name(Optional)
	clusterNs?: string // cluster namespace(Optional)
}

statusKey

status

query result

// query successful
status: {
  podList: [{
    cluster: string
    worload: {
      apiVersion: string
      kind:       string
    }
    metadata: {
      name:         string
      namespace:    string
      creationTime: string
      version: {
        revision:       string
        publishVersion: string
        deployVersion:  string
      }
    }
    status: {
      phase:    "Pending" | "Running" | "Succeeded" | "Failed" | "Unknown"
      // if phase == "Pending" or "Unknown": podIP, hostIP, nodeName will be empty
      podIP:    string
      hostIP:   string
      nodeName: string
    }
  }]
}

// query failed
status: {
  error: string
}

demo

component-pod-view{appName=demo,appNs=default,cluster=prod,clusterNs=default,name=web}.status

pod-view

describe

Query the pods detail information

parameter

parameter: {
	name:      string // pod name
	namespace: string // pod namespace
	cluster?:  string // cluster name(Optional)
}

statusKey

status

query result

// query successful
status: {
	containers: [{
		name:  string
		image: string
		resources: {
			limits: {
				cpu:    string
				memory: string
			}
			requests: {
				cpu:    string
				memory: string
			}
			usage: {
				cpu:    string
				memory: string
			}
		}
		status: {
		    // state holds a possible state of container. 
		    // only one of its members may be specified.
			state: {
				running: {...}
				waiting: {...}
				terminated: {...}
			}
			restartCount: string
		}
	}]
	events: [...v1.Event]
}

// query failed
status: {
  error: string
}

demo

pod-view{name=demo,namespace=default,cluster=prod}.status

resource-view

describe

List resources

parameter

parameter: {
	type:      "ns" | "secret" | "configMap" | "pvc" | "storageClass"
	namespace: *"" | string // Optional
	cluster:   *"" | string // Optional
}

statusKey

status

query result

// query successful
status: {
	list: [...k8sObject]
}

// query failed
status: {
	error: string
}

demo

resource-view{type=ns,cluster=prod}.status