crane icon indicating copy to clipboard operation
crane copied to clipboard

add query expressions management by prom-adapter-config

Open saikey0379 opened this issue 3 years ago • 1 comments

What type of PR is this?

  • Add support for automatic rendering of query expressions
  • More user-friendly query expressions management capabilities
  • Add support for extension-labels

Examples

Make sure you include metrics in your prometheus-adapter-config file

externalRules:
- seriesQuery: 'connection_count'
  metricsQuery: 'sum(<<.Series>>{<<.LabelMatchers>>})'
  resources:
    namespaced: false
  name:
    matches: "^(.*)_count"
    as: "${1}_per_second"

Add args

    command:
    - /craned
    args:
    ...
    - --prometheus-adapter-configmap=crane-system/prometheus-adapter-config/config.yaml
    #- --prometheus-adapter-config=/etc/adapter/config.yaml

Modify ehpa config

Delete annotation for metric-query "metric-query.autoscaling.crane.io: xxx"

Add metric config

  metrics:
  - external:
      metric:
        name: connection_per_second
        selector:
          matchLabels:
            pod_namespace: "default"
            pod_project: "test"
      target:
        averageValue: "30"
        type: AverageValue
    type: External

Test

# kubectl get tsp test -o yaml | grep expression
    expressionQuery:
      expression: sum(connection_count{pod_namespace="default",pod_project="test"})

Extension-labels

Add annotation for extension-labels

apiVersion: autoscaling.crane.io/v1alpha1
kind: EffectiveHorizontalPodAutoscaler
metadata:
  name: test
  namespace: default
  annotations:
    prom-adapter.autoscaling.crane.io/extension-labels: |
      [{"cluster":"prod"}]

Test

# kubectl get tsp test -o yaml | grep expression
    expressionQuery:
      expression: sum(connection_count{cluster="prod",pod_namespace="default",pod_project="test"})

saikey0379 avatar Sep 17 '22 15:09 saikey0379

🎉 Successfully Build Images. Now Support ARM Platforms. Comment Post Time: 2022-12-13 15:18 Git Version: 4a9c9c7

Docker Registry

Overview: https://hub.docker.com/u/gocrane

Image Pull Command
crane-agent:pr-560-4a9c9c7 docker pull gocrane/crane-agent:pr-560-4a9c9c7
dashboard:pr-560-4a9c9c7 docker pull gocrane/dashboard:pr-560-4a9c9c7
metric-adapter:pr-560-4a9c9c7 docker pull gocrane/metric-adapter:pr-560-4a9c9c7
craned:pr-560-4a9c9c7 docker pull gocrane/craned:pr-560-4a9c9c7

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=gocrane/craned \
                   --set craned.image.tag=pr-560-4a9c9c7 \
                   --set metricAdapter.image.repository=gocrane/metric-adapter \
                   --set metricAdapter.image.tag=pr-560-4a9c9c7 \
                   --set craneAgent.image.repository=gocrane/crane-agent \
                   --set craneAgent.image.tag=pr-560-4a9c9c7 \
                   --set cranedDashboard.image.repository=gocrane/dashboard \
                   --set cranedDashboard.image.tag=pr-560-4a9c9c7 crane/crane

Coding Registry

Overview: https://finops.coding.net/public-artifacts/gocrane/crane/packages

Image Pull Command
crane-agent:pr-560-4a9c9c7 docker pull finops-docker.pkg.coding.net/gocrane/crane/crane-agent:pr-560-4a9c9c7
dashboard:pr-560-4a9c9c7 docker pull finops-docker.pkg.coding.net/gocrane/crane/dashboard:pr-560-4a9c9c7
metric-adapter:pr-560-4a9c9c7 docker pull finops-docker.pkg.coding.net/gocrane/crane/metric-adapter:pr-560-4a9c9c7
craned:pr-560-4a9c9c7 docker pull finops-docker.pkg.coding.net/gocrane/crane/craned:pr-560-4a9c9c7

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=finops-docker.pkg.coding.net/gocrane/crane/craned \
                   --set craned.image.tag=pr-560-4a9c9c7 \
                   --set metricAdapter.image.repository=finops-docker.pkg.coding.net/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-560-4a9c9c7 \
                   --set craneAgent.image.repository=finops-docker.pkg.coding.net/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-560-4a9c9c7 \
                   --set cranedDashboard.image.repository=finops-docker.pkg.coding.net/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-560-4a9c9c7 crane/crane

Ghcr Registry

Overview: https://github.com/orgs/gocrane/packages?repo_name=crane

Image Pull Command
crane-agent:pr-560-4a9c9c7 docker pull ghcr.io/gocrane/crane/crane-agent:pr-560-4a9c9c7
dashboard:pr-560-4a9c9c7 docker pull ghcr.io/gocrane/crane/dashboard:pr-560-4a9c9c7
metric-adapter:pr-560-4a9c9c7 docker pull ghcr.io/gocrane/crane/metric-adapter:pr-560-4a9c9c7
craned:pr-560-4a9c9c7 docker pull ghcr.io/gocrane/crane/craned:pr-560-4a9c9c7

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=ghcr.io/gocrane/crane/craned \
                   --set craned.image.tag=pr-560-4a9c9c7 \
                   --set metricAdapter.image.repository=ghcr.io/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-560-4a9c9c7 \
                   --set craneAgent.image.repository=ghcr.io/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-560-4a9c9c7 \
                   --set cranedDashboard.image.repository=ghcr.io/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-560-4a9c9c7 crane/crane

github-actions[bot] avatar Sep 17 '22 16:09 github-actions[bot]

🎊 PR Preview c177e23758a7404c96cf04065b5ba644df22f84e has been successfully built and deployed to https://gocrane-crane-preview-pr-560.surge.sh

:clock1: Build time: 0.011s

🤖 By surge-preview

github-actions[bot] avatar Sep 30 '22 02:09 github-actions[bot]