Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a Service Mesh Interface (SMI) scaler #615

Closed
tomkerkhove opened this issue Feb 6, 2020 · 13 comments
Closed

Provide a Service Mesh Interface (SMI) scaler #615

tomkerkhove opened this issue Feb 6, 2020 · 13 comments
Labels
feature All issues for new features that have been committed to Hacktoberfest help wanted Looking for support from community scaler scaler-proposal stale All issues that are marked as stale due to inactivity
Projects

Comments

@tomkerkhove
Copy link
Member

Provide a Service Mesh Interface (SMI) scaler.

Use-Case

People who are using service meshes would love to autoscale their workloads as well.

Proposal

Service Mesh Interface (SMI) is a specification which introduces a universal way to interact with service meshes.

As part of the specification, it covers how to retrieve traffic metrics which allows us to very easily integrate with it.

Good to know is that Service Mesh Interface (SMI) is being donated to CNCF (deck), provides a Go SDK and is supported by a variety of services meshes already such as Linkerd (CNCF), SuperGloo (Solo.io), Istio*, Consul Connect* and more.

(*) Via adapter

Relates to #538
Relates to servicemeshinterface/smi-spec#96

@tomkerkhove
Copy link
Member Author

Here is a proposal for the trigger configuration:

  triggers:
  - type: service-mesh-interface
    metadata:
      metricName: "p90_response_latency" # Required - Name of the metric in the SMI's TrafficMetrics resource.
      value: "30m"                       # Required - Value defining when we have to start scaling.

Example is based on https://github.com/servicemeshinterface/smi-spec/blob/master/traffic-metrics.md#specification

It would then pull the full TrafficMetrics object for the scaleTargetRef and filter out the configured metricName and make a decision on the value to scale on.

We can use the official Go SDK for accessing the information: https://github.com/deislabs/smi-sdk-go

@tomkerkhove tomkerkhove added feature All issues for new features that have been committed to help wanted Looking for support from community and removed feature-request All issues for new features that have not been committed to needs-discussion labels Mar 19, 2020
@tomkerkhove
Copy link
Member Author

This PR is adding all the supported Service Meshes - servicemeshinterface/smi-spec.io#7

@adnxn
Copy link

adnxn commented Apr 6, 2020

taking a look at this and going off docs here

@tomkerkhove
Copy link
Member Author

Awesome, thanks @adnxn!

@adnxn
Copy link

adnxn commented Apr 16, 2020

@tomkerkhove:

Here is a proposal for the trigger configuration:

should the trigger configuration include a unit specification as well? it is part of the smi spec here https://github.com/servicemeshinterface/smi-spec/blob/master/traffic-metrics.md

for example,

 triggers:
  - type: service-mesh-interface
    metadata:
      metricName: "p90_response_latency"
      unit: "seconds"
      value: "30m"    

@tomkerkhove
Copy link
Member Author

Sounds good to me!

@adnxn adnxn mentioned this issue Apr 26, 2020
@tomkerkhove
Copy link
Member Author

Any update on this @adnxn?

@tomkerkhove
Copy link
Member Author

Feel free to let us know if you need help @adnxn

@adnxn
Copy link

adnxn commented Sep 18, 2020

hey i havent had time to follow up on this. if someone else wants to take it over, feel free. fwiw #783 builds off v1.

@adnxn adnxn removed their assignment Sep 18, 2020
@tomkerkhove tomkerkhove added this to Proposal in Roadmap Oct 13, 2020
@arschles
Copy link
Contributor

arschles commented Nov 24, 2020

I'm not sure why it didn't show up, but we discussed this in #538 (comment) (cc @tomkerkhove)

@stale
Copy link

stale bot commented Oct 13, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale All issues that are marked as stale due to inactivity label Oct 13, 2021
@tomkerkhove
Copy link
Member Author

This will be part of our add-on as per kedacore/http-add-on#6

@arschles
Copy link
Contributor

Specifically: kedacore/http-add-on#6

SpiritZhou pushed a commit to SpiritZhou/keda that referenced this issue Jul 18, 2023
* Document running multiple operator instances thanks to @mtparet

Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>

* Incorporate @arschles his feedback

Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>

* Incorporate @arschles his feedback

Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>

* Delete settings.json

Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature All issues for new features that have been committed to Hacktoberfest help wanted Looking for support from community scaler scaler-proposal stale All issues that are marked as stale due to inactivity
Projects
Status: To Do
Roadmap
Proposal
Development

No branches or pull requests

3 participants