Skip to content

Commit 3304164

Browse files
committed
Modify CEL program to parse long and int values
1 parent 8bf7fb5 commit 3304164

File tree

3 files changed

+54
-37
lines changed

3 files changed

+54
-37
lines changed

packages/rubrik/changelog.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
# newer versions go on top
2+
- version: "0.9.2"
3+
changes:
4+
- description: |
5+
Fix CEL program for Tasks data stream to parse long values.
6+
type: bugfix
7+
link: https://github.com/elastic/integrations/pull/13098
28
- version: "0.9.1"
39
changes:
410
- description: |

packages/rubrik/data_stream/tasks/agent/stream/cel.yml.hbs

Lines changed: 47 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -120,43 +120,54 @@ program: |-
120120
}
121121
}.encode_json(),
122122
}
123-
).do_request().as(resp, (resp.StatusCode == 200) ?
124-
bytes(resp.Body).decode_json().as(body,
123+
).do_request().as(resp,(resp.StatusCode == 200) ?
124+
bytes(resp.Body).decode_json().as(body,
125+
{
126+
"events": body.data.reportChartData.chartData.map(chartDataNode,
127+
chartDataNode.secondaryGroupBy.map(childNode,
128+
childNode.with({
129+
"numVal": (
130+
childNode.value.has("longValue") ? childNode.value.longValue :
131+
(childNode.value.has("intValue") ? childNode.value.intValue :
132+
(childNode.value.has("serializedValue") ?
133+
int(childNode.value.serializedValue) : 0
134+
)
135+
)
136+
)
137+
}).as(v,
138+
{
139+
"slaDomainId": v.name.serializedValue,
140+
"slaDomainName": v.name.displayValue,
141+
"succeededTasksValue": chartDataNode.name.serializedValue == "succeeded_tasks" ? v.numVal : null,
142+
"failedTasksValue": chartDataNode.name.serializedValue == "failed_tasks" ? v.numVal : null,
143+
"canceledTasksValue": chartDataNode.name.serializedValue == "canceled_tasks" ? v.numVal : null,
144+
"missedTasksValue": chartDataNode.name.serializedValue == "missed_tasks" ? v.numVal : null,
145+
"metricType": chartDataNode.name.serializedValue
146+
}
147+
)
148+
)
149+
).flatten().map(event, { "message": event.encode_json() }),
150+
"want_more": int(state.index) < (size(state.queries) - 1),
151+
"queries": state.queries,
152+
"index": (int(state.index) + 1) % size(state.queries)
153+
}
154+
)
155+
:
125156
{
126-
"events": body.data.reportChartData.chartData.map(chartDataNode,
127-
chartDataNode.secondaryGroupBy.map(childNode,
128-
{
129-
"slaDomainId": childNode.name.serializedValue,
130-
"slaDomainName": childNode.name.displayValue,
131-
"succeededTasksValue": chartDataNode.name.serializedValue == "succeeded_tasks" ? childNode.value.intValue : null,
132-
"failedTasksValue": chartDataNode.name.serializedValue == "failed_tasks" ? childNode.value.intValue : null,
133-
"canceledTasksValue": chartDataNode.name.serializedValue == "canceled_tasks" ? childNode.value.intValue : null,
134-
"missedTasksValue": chartDataNode.name.serializedValue == "missed_tasks" ? childNode.value.intValue : null,
135-
"metricType": chartDataNode.name.serializedValue
136-
}
137-
)
138-
).flatten().map(event, { "message": event.encode_json() }),
139-
"want_more": int(state.index) < (size(state.queries) - 1),
140-
"queries": state.queries,
141-
"index": (int(state.index) + 1) % size(state.queries)
142-
}
143-
)
144-
:
145-
{
146-
"events": {
147-
"error": {
148-
"code": string(resp.StatusCode),
149-
"id": string(resp.Status),
150-
"message": "POST:" +
151-
(
152-
(size(resp.Body) != 0) ?
153-
string(resp.Body)
154-
:
155-
string(resp.Status) + " (" + string(resp.StatusCode) + ")"
156-
),
157+
"events": {
158+
"error": {
159+
"code": string(resp.StatusCode),
160+
"id": string(resp.Status),
161+
"message": "POST:" +
162+
(
163+
(size(resp.Body) != 0) ?
164+
string(resp.Body)
165+
:
166+
string(resp.Status) + " (" + string(resp.StatusCode) + ")"
167+
),
168+
},
157169
},
158-
},
159-
"want_more": false,
160-
}
170+
"want_more": false,
171+
}
161172
)
162173
)

packages/rubrik/manifest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
format_version: 3.0.2
22
name: rubrik
33
title: "Rubrik RSC Metrics"
4-
version: 0.9.1
4+
version: 0.9.2
55
source:
66
license: "Elastic-2.0"
77
description: "Collect Metrics from Rubrik RSC with Elastic Agent."

0 commit comments

Comments
 (0)