Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
99a73f9
init commit, functional
EIRNf Jul 1, 2025
e38ab65
Merge remote-tracking branch 'origin' into esiramos/profiling
EIRNf Jul 2, 2025
c97ad5b
fixes for local build, add profile endpoints
EIRNf Jul 2, 2025
e6af945
functional wrk2 benchmark setup
EIRNf Jul 2, 2025
ea9e696
submodule readme details
EIRNf Jul 2, 2025
31d4127
Merge remote-tracking branch 'origin' into esiramos/profiling
EIRNf Jul 3, 2025
8639d61
Merge remote-tracking branch 'origin' into esiramos/profiling
EIRNf Jul 8, 2025
6fda737
Merge remote-tracking branch 'origin' into esiramos/profiling
EIRNf Jul 8, 2025
aa4075d
wrk2 script rewrite attempt
EIRNf Jul 8, 2025
150b9cf
delete wrk2 addon
EIRNf Jul 8, 2025
0ed5dae
extend endpoints to include profiling endpoints
EIRNf Jul 8, 2025
037a9df
update locusstfile
EIRNf Jul 9, 2025
565fe5f
update main program, include profile data correctly
EIRNf Jul 9, 2025
c92278a
updated fixed locust script
EIRNf Jul 9, 2025
789ccea
unmarshall error on read comments fix
EIRNf Jul 9, 2025
af57132
Merge remote-tracking branch 'origin/main' into esiramos/profiling
EIRNf Jul 11, 2025
db5d8a4
wip commits
EIRNf Jul 14, 2025
ded9383
Merge remote-tracking branch 'origin/main' into esiramos/profiling
EIRNf Jul 16, 2025
55f7daa
updates
EIRNf Jul 16, 2025
b685d69
updates
EIRNf Jul 19, 2025
e9ea354
working redis multi deployment
EIRNf Jul 20, 2025
ead6103
update runner, loadgen, add graph program
EIRNf Jul 20, 2025
bef4973
Merge remote-tracking branch 'origin/esiramos/redis-multi' into esira…
EIRNf Jul 20, 2025
6590b56
run manifests
EIRNf Jul 21, 2025
bfbff1d
graph updates, run_all updates
EIRNf Jul 21, 2025
3ce2a3b
add test profiles
EIRNf Jul 21, 2025
a32ffac
update all run manifests
EIRNf Jul 21, 2025
38b03ae
Merge origin main
EIRNf Jul 21, 2025
01e7512
Update loadgen, including long step warmup
EIRNf Jul 21, 2025
5000a5b
update monolith manifest
EIRNf Jul 21, 2025
fe94a9f
remove git submodule
EIRNf Jul 22, 2025
fb54b85
update profiling allocation
EIRNf Jul 22, 2025
f5a86e8
update graphing
EIRNf Jul 23, 2025
e65343a
update runner
EIRNf Jul 23, 2025
eab0512
update coode to include workpool tunning by env var
EIRNf Jul 23, 2025
62428d3
update run manifests
EIRNf Jul 23, 2025
476541d
Adding previous data
EIRNf Jul 23, 2025
4300243
Revert "Merge origin main"
EIRNf Jul 23, 2025
2c94d00
change monoliht manifest
EIRNf Jul 23, 2025
6255b69
remove workpool changes
EIRNf Jul 24, 2025
fd21fd2
remove memory limit
EIRNf Jul 24, 2025
09857f3
update graphing script, change loadgen
EIRNf Jul 24, 2025
d258471
run all update
EIRNf Jul 24, 2025
235f66b
update save data
EIRNf Jul 24, 2025
81ebaa4
update mixed data
EIRNf Jul 24, 2025
eac4be3
revert service changes
EIRNf Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 15 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CONTAINER_REGISTRY ?= ghcr.io/tgoodwin
CONTAINER_REGISTRY ?= docker.io/eirn
IMAGE_NAME ?= $(CONTAINER_REGISTRY)/demo-monolith
IMAGE_TAG ?= workpool
IMAGE_TAG ?= dapr

# Kubernetes manifest files location
K8S_DIR ?= demo/monolith/k8s
Expand All @@ -26,7 +26,7 @@ push-demo: build-demo

deploy-demo:
@echo "--- Deploying to Kubernetes using manifests in $(K8S_DIR) ---"
kind load docker-image $(IMAGE_NAME):$(IMAGE_TAG) --name operator-perf-test
kind load docker-image $(IMAGE_NAME):$(IMAGE_TAG) --name kind
kubectl apply -f $(K8S_DIR)

undeploy:
Expand All @@ -52,8 +52,19 @@ delete-demo:
delete-generated:
kubectl delete -f $(GENERATED_MANIFEST_DIR)

delete-redis:
@echo "--- deleting redis manifests ---"
kubectl delete -f $(K8S_DIR)/redis.yaml
kubectl wait --for=delete -f $(K8S_DIR)/redis.yaml --timeout=60s || true
kubectl delete -f $(K8S_DIR)/redis-multi.yaml
kubectl wait --for=delete -f $(K8S_DIR)/redis-multi.yaml --timeout=60s || true


reset-redis:
@echo "---deleting and then recreating redis---"
kubectl delete -f $(K8S_DIR)/redis.yaml
kubectl delete -f $(K8S_DIR)/redis.yaml --ignore-not-found=true
kubectl wait --for=delete -f $(K8S_DIR)/redis.yaml --timeout=60s || true
kubectl delete -f $(K8S_DIR)/redis-multi.yaml --ignore-not-found=true
kubectl wait --for=delete -f $(K8S_DIR)/redis-multi.yaml --timeout=60s || true
kubectl apply -f $(K8S_DIR)/redis.yaml
kubectl apply -f $(K8S_DIR)/redis-multi.yaml
2 changes: 1 addition & 1 deletion demo/monolith/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
IMAGE_NAME ?= docker.io/tlg2132/demo-monolith
IMAGE_NAME ?= docker.io/eirn/demo-monolith
IMAGE_TAG ?= latest

# Kubernetes manifest files location
Expand Down
19 changes: 10 additions & 9 deletions demo/monolith/frontend/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,16 @@ func (h *APIHandlers) SaveHandler(w http.ResponseWriter, r *http.Request) {
}

// update timeline asynchronously to match DeathStarBench use of a queue
serviceCallStart = time.Now()
_, err = h.TimelineService.UpdateTimeline(ctx, timelineUpdateReq)
// TODO measure latency on the worker task instead of here
util.ObserveHist(serviceCallLatHist.WithLabelValues("timelineservice", "UpdateTimeline"), float64(time.Since(serviceCallStart).Milliseconds()))
if err != nil {
// Log error, but don't fail the entire Save operation for a timeline update failure
logger.Printf("SaveHandler: failed to update timeline for user %s, post %s: %v", userId, postId, err)
}
logger.Printf("SaveHandler: PostId %s, User %s, Text: %s, Image IDs: %v", postId, userId, text, imageIds)
go func(req timelineTypes.UpdateReq) {
serviceCallStart := time.Now()
_, err = h.TimelineService.UpdateTimeline(ctx, req)
util.ObserveHist(serviceCallLatHist.WithLabelValues("timelineservice", "UpdateTimeline"), float64(time.Since(serviceCallStart).Milliseconds()))
if err != nil {
// Log error, but don't fail the entire Save operation for a timeline update failure
logger.Printf("SaveHandler: failed to update timeline for user %s, post %s: %v", userId, postId, err)
}
logger.Printf("SaveHandler: PostId %s, User %s, Text: %s, Image IDs: %v", postId, userId, text, imageIds)
}(timelineUpdateReq)

resp := UpdateResp{PostId: postId} // Use type from frontend/types.go
writeJSONResponse(w, http.StatusOK, resp)
Expand Down
64 changes: 0 additions & 64 deletions demo/monolith/k8s/dapr-redis-stores.yaml

This file was deleted.

13 changes: 2 additions & 11 deletions demo/monolith/k8s/monolith-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,10 @@ spec:
dapr.io/app-id: "monolith"
dapr.io/app-port: "8080"
spec:
tolerations:
- key: "tier"
operator: "Equal"
value: "entrypoint"
effect: "PreferNoSchedule"
- key: "tier"
operator: "Equal"
value: "backend"
effect: "PreferNoSchedule"
containers:
- name: monolith-app
imagePullPolicy: Always
image: ghcr.io/tgoodwin/demo-monolith:workpool
image: docker.io/eirn/demo-monolith:dapr
ports:
- name: http-app
containerPort: 8080
Expand Down Expand Up @@ -61,6 +52,7 @@ spec:
resourceFieldRef:
containerName: monolith-app
resource: limits.memory # Expresses value in bytes

# If using a Kubernetes Secret for the password, it would look like this:
# - name: REDIS_PASSWORD
# valueFrom:
Expand All @@ -72,5 +64,4 @@ spec:
memory: "128Mi"
cpu: "500m"
limits:
memory: "4Gi"
cpu: "4000m"
Loading