kruize / autotune

Autonomous Performance Tuning for Kubernetes!
Apache License 2.0
165 stars 54 forks source link

layer presence query key can not have blank/invalid/multiple values #148

Open shruacha1234 opened 3 years ago

shruacha1234 commented 3 years ago

layer presence query key can not have blank/invalid/multiple values

blank-layer-presence-query-key

apiVersion: "recommender.com/v1"
kind: "AutotuneConfig"
metadata:
  name: "blank-layer-presence-query-key"
layer_name: container
layer_level: 0
details: generic container tunables
layerPresence: 
   query: 
     datasource:
       - name: 'prometheus'
         query: 'query'
         key: ' '
tunables:
  - name: memoryRequest
    value_type: double
    upper_bound: '300M'
    lower_bound: '150M'
    queries:
      datasource:
        - name: 'prometheus'
          query: 'container_memory_working_set_bytes{$CONTAINER_LABEL$="", $POD_LABEL$="$POD$"}'
    sla_class:
      - response_time
      - throughput
      - resource_usage

  - name: cpuRequest
    value_type: double
    upper_bound: '3.0'
    lower_bound: '1.0'
    queries:
      datasource:
        - name: 'prometheus'
          query: '(container_cpu_usage_seconds_total{$CONTAINER_LABEL$!="POD", $POD_LABEL$="$POD$"}[1m])'
    sla_class:
      - response_time
      - throughput
      - resource_usage

invalid-layer-presence-key

apiVersion: "recommender.com/v1"
kind: "AutotuneConfig"
metadata:
  name: "invalid-layer-presence-query-key"
layer_name: container
layer_level: 0
details: generic container tunables
layerPresence:
   query: 
     datasource:
       - name: 'prometheus'
         query: 'query'
         key: 'xyz'
tunables:
  - name: memoryRequest
    value_type: double
    upper_bound: '300M'
    lower_bound: '150M'
    queries:
      datasource:
        - name: 'prometheus'
          query: 'container_memory_working_set_bytes{$CONTAINER_LABEL$="", $POD_LABEL$="$POD$"}'
    sla_class:
      - response_time
      - throughput
      - resource_usage

  - name: cpuRequest
    value_type: double
    upper_bound: '3.0'
    lower_bound: '1.0'
    queries:
      datasource:
        - name: 'prometheus'
          query: '(container_cpu_usage_seconds_total{$CONTAINER_LABEL$!="POD", $POD_LABEL$="$POD$"}[1m])'
    sla_class:
      - response_time
      - throughput
      - resource_usage

multiple-layer-presence-key

apiVersion: "recommender.com/v1"
kind: "AutotuneConfig"
metadata:
  name: "multiple-layer-presence-query-key-sections"
layer_name: container
layer_level: 0
details: generic container tunables
layerPresence:
  # This layer is assumed to be available by default for all applications.
   presence: always 
   query: 
     datasource:
       - name: 'prometheus'
         query: 'query'
         key: 'key'
         key: 'key'
   label:
     - name: 'label'
       value: ''
tunables:
  - name: memoryRequest
    value_type: double
    upper_bound: '300M'
    lower_bound: '150M'
    queries:
      datasource:
        - name: 'prometheus'
          query: 'container_memory_working_set_bytes{$CONTAINER_LABEL$="", $POD_LABEL$="$POD$"}'
    sla_class:
      - response_time
      - throughput
      - resource_usage

  - name: cpuRequest
    value_type: double
    upper_bound: '3.0'
    lower_bound: '1.0'
    queries:
      datasource:
        - name: 'prometheus'
          query: '(container_cpu_usage_seconds_total{$CONTAINER_LABEL$!="POD", $POD_LABEL$="$POD$"}[1m])'
    sla_class:
      - response_time
      - throughput
      - resource_usage
ShishirH commented 3 years ago

Multiple entries behaviour is as expected