Skip to content

Commit 6337ce7

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 6337ce7

File tree

2 files changed

+38
-34
lines changed

2 files changed

+38
-34
lines changed

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

Lines changed: 22 additions & 20 deletions
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 }}"
@@ -155,13 +153,17 @@ spec:
155153
volumeMounts:
156154
- name: config-volume
157155
mountPath: /etc/loadgen
156+
- name: key
157+
mountPath: /config
158158
ports:
159159
- name: loadgen-port
160160
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

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,9 @@ func NewQuerier(groupID int, target, prNumber string, qg QueryGroup) *Querier {
107107
start := durationSeconds(qg.Start)
108108
end := durationSeconds(qg.End)
109109

110-
nodePort := 30198
111-
url := fmt.Sprintf("http://%s:%d/%s/prometheus-%s/api/v1/query", domainName, nodePort, prNumber, target)
110+
url := fmt.Sprintf("http://%s/%s/prometheus-%s/api/v1/query", domainName, prNumber, target)
112111
if qtype == "range" {
113-
url = fmt.Sprintf("http://%s:%d/%s/prometheus-%s/api/v1/query_range", domainName, nodePort, prNumber, target)
112+
url = fmt.Sprintf("http://%s/%s/prometheus-%s/api/v1/query_range", domainName, prNumber, target)
114113
}
115114

116115
return &Querier{
@@ -137,13 +136,13 @@ func loadKeyConfig() (*KeyConfig, error) {
137136

138137
data, err := os.ReadFile(filePath)
139138
if err != nil {
140-
return nil, fmt.Errorf("error reading file: %v", err)
139+
return nil, fmt.Errorf("error reading file: %w", err)
141140
}
142141

143142
var keyConfig KeyConfig
144143
err = yaml.Unmarshal(data, &keyConfig)
145144
if err != nil {
146-
return nil, fmt.Errorf("error parsing YAML: %v", err)
145+
return nil, fmt.Errorf("error parsing YAML: %w", err)
147146
}
148147

149148
return &keyConfig, nil
@@ -154,12 +153,16 @@ func (q *Querier) run(wg *sync.WaitGroup) {
154153
fmt.Printf("Running querier %s %s for %s\n", q.target, q.name, q.url)
155154
time.Sleep(20 * time.Second)
156155

156+
keyConfig, err := loadKeyConfig()
157+
157158
for {
158159
start := time.Now()
159160

160161
for _, query := range q.queries {
161-
q.query(query.Expr, "current")
162-
q.query(query.Expr, "absolute")
162+
q.query(query.Expr, "current", nil)
163+
if err == nil {
164+
q.query(query.Expr, "absolute", keyConfig)
165+
}
163166
}
164167

165168
wait := q.interval - time.Since(start)
@@ -169,30 +172,29 @@ func (q *Querier) run(wg *sync.WaitGroup) {
169172
}
170173
}
171174

172-
func (q *Querier) query(expr string, timeMode string) {
175+
func (q *Querier) query(expr string, timeMode string, keyConfig *KeyConfig) {
173176
queryCount.WithLabelValues(q.target, q.name, expr, q.qtype).Inc()
174177
start := time.Now()
178+
175179
req, err := http.NewRequest("GET", q.url, nil)
176180
if err != nil {
177181
log.Printf("Error creating request: %v", err)
178182
queryFailCount.WithLabelValues(q.target, q.name, expr, q.qtype).Inc()
179183
return
180184
}
181-
keyConfig, err := loadKeyConfig()
182-
if err != nil {
183-
timeMode = "current"
184-
}
185+
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
}

0 commit comments

Comments
 (0)