Skip to content

Commit

Permalink
Allowing setting minReplicas for IG router. (kserve#2679)
Browse files Browse the repository at this point in the history
Also added some logging for IG router to log step execution time.

Signed-off-by: rachitchauhan43 <[email protected]>
  • Loading branch information
rachitchauhan43 authored Feb 16, 2023
1 parent 3c9cafe commit 75e5edc
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 141 deletions.
14 changes: 10 additions & 4 deletions cmd/router/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ import (
var log = logf.Log.WithName("InferenceGraphRouter")

func callService(serviceUrl string, input []byte, headers http.Header) ([]byte, error) {
defer timeTrack(time.Now(), "step", serviceUrl)
log.Info("Entering callService", "url", serviceUrl)
req, err := http.NewRequest("POST", serviceUrl, bytes.NewBuffer(input))
for _, h := range headersToPropagate {
if values, ok := headers[h]; ok {
Expand Down Expand Up @@ -90,13 +92,13 @@ func pickupRouteByCondition(input []byte, routes []v1alpha1.InferenceStep) *v1al
return nil
}

func timeTrack(start time.Time, name string) {
func timeTrack(start time.Time, nodeOrStep string, name string) {
elapsed := time.Since(start)
log.Info("elapsed time", "node", name, "time", elapsed)
log.Info("elapsed time", nodeOrStep, name, "time", elapsed)
}

func routeStep(nodeName string, graph v1alpha1.InferenceGraphSpec, input []byte, headers http.Header) ([]byte, error) {
defer timeTrack(time.Now(), nodeName)
defer timeTrack(time.Now(), "node", nodeName)
currentNode := graph.Nodes[nodeName]

if currentNode.RouterType == v1alpha1.Splitter {
Expand Down Expand Up @@ -195,12 +197,16 @@ func graphHandler(w http.ResponseWriter, req *http.Request) {

var (
jsonGraph = flag.String("graph-json", "", "serialized json graph def")
headersToPropagate = strings.Split(os.Getenv(constants.RouterHeadersPropagateEnvVar), ",")
headersToPropagate []string
)

func main() {
flag.Parse()
logf.SetLogger(zap.New())
if headersToPropagateEnvVar, ok := os.LookupEnv(constants.RouterHeadersPropagateEnvVar); ok {
log.Info("These headers will be propagated by the router to all the steps.", "headersToPropagateEnvVar", headersToPropagateEnvVar)
headersToPropagate = strings.Split(headersToPropagateEnvVar, ",")
}
inferenceGraph = &v1alpha1.InferenceGraphSpec{}
err := json.Unmarshal([]byte(*jsonGraph), inferenceGraph)
if err != nil {
Expand Down
6 changes: 6 additions & 0 deletions cmd/router/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,15 @@ import (
"knative.dev/pkg/apis"
"net/http"
"net/http/httptest"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
"testing"
)

func init() {
logf.SetLogger(zap.New())
}

func TestSimpleModelChainer(t *testing.T) {
// Start a local HTTP server
model1 := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/apis/serving/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 75e5edc

Please sign in to comment.