Skip to content

Commit fe9cad2

Browse files
Modified the query way ! added absolute and current time pluse changed loadgen
start and end time! Signed-off-by: Kushal Shukla <[email protected]>
1 parent fb07a8f commit fe9cad2

File tree

2 files changed

+52
-32
lines changed

2 files changed

+52
-32
lines changed

prombench/manifests/prombench/benchmark/6_loadgen.yaml

+24-22
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ data:
1010
- name: simple_range
1111
interval: 10s
1212
type: range
13-
start: 2h
13+
start: 4h
1414
end: 1h
1515
step: 15s
1616
queries:
@@ -31,7 +31,7 @@ data:
3131
- name: aggr_range
3232
interval: 30s
3333
type: range
34-
start: 1h
34+
start: 4h
3535
end: 0h
3636
step: 15s
3737
queries:
@@ -85,21 +85,6 @@ spec:
8585
app: loadgen-scaler
8686
spec:
8787
serviceAccountName: loadgen-scaler
88-
initContainers:
89-
- name: download-key
90-
image: kushalshukla/builder
91-
imagePullPolicy: Always
92-
command: [ "/download-key/key.sh" ]
93-
env:
94-
- name: PR_NUMBER
95-
value: "{{ .PR_NUMBER }}"
96-
- name: GITHUB_ORG
97-
value: "{{ .GITHUB_ORG }}"
98-
- name: GITHUB_REPO
99-
value: "{{ .GITHUB_REPO }}"
100-
volumeMounts:
101-
- name: key
102-
mountPath: /config
10388
containers:
10489
- name: prom-load-generator
10590
image: docker.io/prominfra/scaler:master
@@ -120,8 +105,6 @@ spec:
120105
- name: webserver-config-volume
121106
configMap:
122107
name: fake-webserver-config-for-scaler
123-
- name: key
124-
emptyDir: {}
125108
nodeSelector:
126109
node-name: nodes-{{ .PR_NUMBER }}
127110
isolation: none
@@ -142,9 +125,24 @@ spec:
142125
labels:
143126
app: loadgen-querier
144127
spec:
128+
initContainers:
129+
- name: download-key
130+
image: kushalshukla/builder
131+
imagePullPolicy: Always
132+
command: [ "/download-key/key.sh" ]
133+
env:
134+
- name: PR_NUMBER
135+
value: "{{ .PR_NUMBER }}"
136+
- name: GITHUB_ORG
137+
value: "{{ .GITHUB_ORG }}"
138+
- name: GITHUB_REPO
139+
value: "{{ .GITHUB_REPO }}"
140+
volumeMounts:
141+
- name: key
142+
mountPath: /config
145143
containers:
146144
- name: prom-load-generator
147-
image: docker.io/prominfra/load-generator:master
145+
image: kushalshukla/load-generator
148146
imagePullPolicy: Always
149147
args:
150148
- "prombench-{{ .PR_NUMBER }}"
@@ -154,14 +152,18 @@ spec:
154152
value: "{{ .DOMAIN_NAME }}"
155153
volumeMounts:
156154
- name: config-volume
157-
mountPath: /etc/loadgen
155+
mountPath: /etc/loadgen
156+
- name: key
157+
mountPath: /config
158158
ports:
159159
- name: loadgen-port
160-
containerPort: 8080
160+
containerPort: 8080
161161
volumes:
162162
- name: config-volume
163163
configMap:
164164
name: prometheus-loadgen
165+
- name: key
166+
emptyDir: {}
165167
nodeSelector:
166168
node-name: nodes-{{ .PR_NUMBER }}
167169
isolation: none

tools/load-generator/main.go

+28-10
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func NewQuerier(groupID int, target, prNumber string, qg QueryGroup) *Querier {
107107
start := durationSeconds(qg.Start)
108108
end := durationSeconds(qg.End)
109109

110-
nodePort := 30198
110+
nodePort := 30742
111111
url := fmt.Sprintf("http://%s:%d/%s/prometheus-%s/api/v1/query", domainName, nodePort, prNumber, target)
112112
if qtype == "range" {
113113
url = fmt.Sprintf("http://%s:%d/%s/prometheus-%s/api/v1/query_range", domainName, nodePort, prNumber, target)
@@ -154,12 +154,17 @@ func (q *Querier) run(wg *sync.WaitGroup) {
154154
fmt.Printf("Running querier %s %s for %s\n", q.target, q.name, q.url)
155155
time.Sleep(20 * time.Second)
156156

157+
keyConfig, err := loadKeyConfig()
158+
fmt.Println(err, "Hi from err")
159+
157160
for {
158161
start := time.Now()
159162

160163
for _, query := range q.queries {
161-
q.query(query.Expr, "current")
162-
q.query(query.Expr, "absolute")
164+
q.query(query.Expr, "current", nil)
165+
if err == nil {
166+
q.query(query.Expr, "absolute", keyConfig)
167+
}
163168
}
164169

165170
wait := q.interval - time.Since(start)
@@ -169,7 +174,7 @@ func (q *Querier) run(wg *sync.WaitGroup) {
169174
}
170175
}
171176

172-
func (q *Querier) query(expr string, timeMode string) {
177+
func (q *Querier) query(expr string, timeMode string, keyConfig *KeyConfig) {
173178
queryCount.WithLabelValues(q.target, q.name, expr, q.qtype).Inc()
174179
start := time.Now()
175180
req, err := http.NewRequest("GET", q.url, nil)
@@ -178,28 +183,41 @@ func (q *Querier) query(expr string, timeMode string) {
178183
queryFailCount.WithLabelValues(q.target, q.name, expr, q.qtype).Inc()
179184
return
180185
}
181-
keyConfig, err := loadKeyConfig()
182-
if err != nil {
183-
timeMode = "current"
184-
}
185186
qParams := req.URL.Query()
186187
qParams.Set("query", expr)
187188
if q.qtype == "range" {
188189
if timeMode == "current" {
190+
fmt.Println("range , current blocks")
189191
qParams.Set("start", fmt.Sprintf("%d", int64(time.Now().Add(-q.start).Unix())))
190192
qParams.Set("end", fmt.Sprintf("%d", int64(time.Now().Add(-q.end).Unix())))
191193
qParams.Set("step", q.step)
192194
} else {
193-
startTime := time.Unix(0, keyConfig.MinTime*int64(time.Millisecond))
195+
fmt.Println("range , absolute blocks")
194196
endTime := time.Unix(0, keyConfig.MaxTime*int64(time.Millisecond))
195-
qParams.Set("start", fmt.Sprintf("%d", int64(startTime.Add(-q.start).Unix())))
197+
qParams.Set("start", fmt.Sprintf("%d", int64(endTime.Add(-q.start).Unix())))
196198
qParams.Set("end", fmt.Sprintf("%d", int64(endTime.Add(-q.end).Unix())))
197199
qParams.Set("step", q.step)
198200
}
199201
}
200202
req.URL.RawQuery = qParams.Encode()
201203

202204
resp, err := http.DefaultClient.Do(req)
205+
if err != nil {
206+
fmt.Println(err)
207+
}
208+
if q.qtype == "range" && timeMode == "absolute" {
209+
fmt.Println("absolute second time checking !!")
210+
body, err := io.ReadAll(resp.Body)
211+
if err != nil {
212+
log.Fatal(err)
213+
}
214+
defer resp.Body.Close()
215+
216+
// Print the body content as a string
217+
fmt.Println(string(body), "Hi from body side!!!")
218+
219+
}
220+
203221
if err != nil {
204222
log.Printf("Error querying Prometheus: %v", err)
205223
queryFailCount.WithLabelValues(q.target, q.name, expr, q.qtype).Inc()

0 commit comments

Comments
 (0)