Skip to content

Commit 8db8e05

Browse files
[Servicenow] Add support to append sysparm query in CEL input (#13621)
Introduce an optional parameter to append additional query conditions for advanced filtering needs. It is advised to avoid using timestamp fields in the appended query to prevent potential issues with pagination and cursor logic.
1 parent 2b8c981 commit 8db8e05

File tree

7 files changed

+37
-21
lines changed

7 files changed

+37
-21
lines changed

packages/servicenow/changelog.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# newer versions go on top
2+
- version: "0.13.0"
3+
changes:
4+
- description: Add option to supply a value for the sysparm_query parameter.
5+
type: enhancement
6+
link: https://github.com/elastic/integrations/pull/13621
27
- version: "0.12.1"
38
changes:
49
- description: Fix handling of SQS worker count configuration.

packages/servicenow/data_stream/event/_dev/test/system/test-default-config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ data_stream:
99
interval: 5m
1010
table_name: incident
1111
batch_size: 1
12+
query: active=true
1213
assert:
1314
hit_count: 3

packages/servicenow/data_stream/event/agent/stream/cel.yml.hbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ state:
2121
batch_size: {{batch_size}}
2222
initial_interval: {{initial_interval}}
2323
timestamp_field: {{timestamp_field}}
24+
query: {{query}}
2425
regexp:
2526
next_link: '<([^,]*)>;rel="next"'
2627
content: 'text/html'
@@ -34,7 +35,7 @@ program: |
3435
"sysparm_display_value": ["all"],
3536
"sysparm_exclude_reference_link": ["true"],
3637
"sysparm_limit": [string(state.batch_size)],
37-
"sysparm_query": ["ORDERBY"+state.timestamp_field+"^"+state.timestamp_field+">"+start],
38+
"sysparm_query": ["ORDERBY"+state.timestamp_field+"^"+state.timestamp_field+">"+start+(state.?query.hasValue() ? "^"+state.?query.orValue("") : "")],
3839
}.format_query()
3940
)
4041
)).as(resp, resp.StatusCode == 200 && (resp.Header["Content-Type"][0].re_find_submatch("content") == []) ?

packages/servicenow/data_stream/event/manifest.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ streams:
8484
default: America/Los_Angeles
8585
description: >-
8686
By default, datetimes in the logs without a time zone will be interpreted as relative to the time zone configured in the host where the agent is running. If ingesting logs from a different time zone, use this field to set the time zone offset so that datetimes are correctly parsed. Acceptable time zone formats are: a canonical ID (e.g. "Europe/Amsterdam"), or an HH:mm differential (e.g. "-05:00") from UTC.
87+
- name: query
88+
type: text
89+
title: Sysparm Query
90+
description: >-
91+
Encoded query for filtering result sets with operators like `=`, `!=`, `^`, `^OR`, `LIKE`, `ORDERBY`, `ORDERBYDESC`
92+
(e.g. `active=true^ORDERBYname`). Note: Avoid using the timestamp field in the query, as it may affect pagination and cursor logic.
93+
multi: false
94+
required: false
95+
show_user: false
8796
- name: http_client_timeout
8897
type: text
8998
title: HTTP Client Timeout

packages/servicenow/data_stream/event/sample_event.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
{
2-
"@timestamp": "2024-09-24T05:39:40.000Z",
2+
"@timestamp": "2024-09-23T22:39:40.000-07:00",
33
"agent": {
4-
"ephemeral_id": "121d1e8c-0c94-4812-a446-4e8c339cbf5e",
5-
"id": "744b1c23-395c-4123-9b8a-7e975ed7b1f8",
6-
"name": "docker-fleet-agent",
4+
"ephemeral_id": "def1e9fc-c5bf-4313-aebd-00845c9b3d61",
5+
"id": "fd63c8e0-f0fc-498e-baaa-319b3609c582",
6+
"name": "elastic-agent-43184",
77
"type": "filebeat",
8-
"version": "8.14.0"
8+
"version": "8.16.5"
99
},
1010
"data_stream": {
1111
"dataset": "servicenow.event",
12-
"namespace": "28538",
12+
"namespace": "50362",
1313
"type": "logs"
1414
},
1515
"ecs": {
1616
"version": "8.11.0"
1717
},
1818
"elastic_agent": {
19-
"id": "744b1c23-395c-4123-9b8a-7e975ed7b1f8",
19+
"id": "fd63c8e0-f0fc-498e-baaa-319b3609c582",
2020
"snapshot": false,
21-
"version": "8.14.0"
21+
"version": "8.16.5"
2222
},
2323
"event": {
2424
"agent_id_status": "verified",
@@ -29,7 +29,7 @@
2929
"created": "2016-12-12T15:19:57.000Z",
3030
"dataset": "servicenow.event",
3131
"id": "1c741bd70b2322007518478d83673af3",
32-
"ingested": "2024-12-02T12:33:55Z",
32+
"ingested": "2025-04-25T09:46:25Z",
3333
"kind": "event",
3434
"severity": 3,
3535
"timezone": "America/Los_Angeles",
@@ -118,4 +118,4 @@
118118
"user": {
119119
"name": "Joe Employee"
120120
}
121-
}
121+
}

packages/servicenow/docs/README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -164,26 +164,26 @@ An example event for `event` looks as following:
164164

165165
```json
166166
{
167-
"@timestamp": "2024-09-24T05:39:40.000Z",
167+
"@timestamp": "2024-09-23T22:39:40.000-07:00",
168168
"agent": {
169-
"ephemeral_id": "121d1e8c-0c94-4812-a446-4e8c339cbf5e",
170-
"id": "744b1c23-395c-4123-9b8a-7e975ed7b1f8",
171-
"name": "docker-fleet-agent",
169+
"ephemeral_id": "def1e9fc-c5bf-4313-aebd-00845c9b3d61",
170+
"id": "fd63c8e0-f0fc-498e-baaa-319b3609c582",
171+
"name": "elastic-agent-43184",
172172
"type": "filebeat",
173-
"version": "8.14.0"
173+
"version": "8.16.5"
174174
},
175175
"data_stream": {
176176
"dataset": "servicenow.event",
177-
"namespace": "28538",
177+
"namespace": "50362",
178178
"type": "logs"
179179
},
180180
"ecs": {
181181
"version": "8.11.0"
182182
},
183183
"elastic_agent": {
184-
"id": "744b1c23-395c-4123-9b8a-7e975ed7b1f8",
184+
"id": "fd63c8e0-f0fc-498e-baaa-319b3609c582",
185185
"snapshot": false,
186-
"version": "8.14.0"
186+
"version": "8.16.5"
187187
},
188188
"event": {
189189
"agent_id_status": "verified",
@@ -194,7 +194,7 @@ An example event for `event` looks as following:
194194
"created": "2016-12-12T15:19:57.000Z",
195195
"dataset": "servicenow.event",
196196
"id": "1c741bd70b2322007518478d83673af3",
197-
"ingested": "2024-12-02T12:33:55Z",
197+
"ingested": "2025-04-25T09:46:25Z",
198198
"kind": "event",
199199
"severity": 3,
200200
"timezone": "America/Los_Angeles",

packages/servicenow/manifest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
format_version: 3.2.1
22
name: servicenow
33
title: "ServiceNow"
4-
version: "0.12.1"
4+
version: "0.13.0"
55
description: "Collect logs from ServiceNow with Elastic Agent."
66
type: integration
77
categories:

0 commit comments

Comments
 (0)