array_concat
Usage#
Syntax#
array_concat(array1, array2, ...)Parameters#
array1: The first array to concatenate.array2: The second array to concatenate....: Additional arrays to concatenate.
Returns#
An array containing all elements from the input arrays in the order they're provided.
Use case examples#
In log analysis, you can use array_concat to merge collections of user requests into a single array to analyze request patterns across different endpoints.
Query
['sample-http-logs']
| take 50
| summarize combined_requests = array_concat(pack_array(uri), pack_array(method))Output
| _time | uri | method | combined_requests |
|---|---|---|---|
| 2024-10-28T12:30:00 | /api/v1/textdata/cnfigs | POST | ["/api/v1/textdata/cnfigs", "POST"] |
This example concatenates the uri and method values into a single array for each log entry, allowing for combined analysis of access patterns and request methods in log data.
In OpenTelemetry traces, use array_concat to join span IDs and trace IDs for a comprehensive view of trace behavior across services.
Query
['otel-demo-traces']
| take 50
| summarize combined_ids = array_concat(pack_array(span_id), pack_array(trace_id))Output
| combined_ids |
|---|
| ["span1", "trace1", "span2", ...] |
| _time | trace_id | span_id | combined_ids |
|---|---|---|---|
| 2024-10-28T12:30:00 | trace_abc123 | span_001 | ["trace_abc123", "span_001"] |
This example creates an array containing both span_id and trace_id values, offering a unified view of the trace journey across services.
In security logs, array_concat can consolidate multiple IP addresses or user IDs to detect potential attack patterns involving different locations or users.
Query
['sample-http-logs']
| where status == '500'
| take 50
| summarize failed_attempts = array_concat(pack_array(id), pack_array(['geo.city']))Output
| _time | id | geo.city | combined_ids |
|---|---|---|---|
| 2024-10-28T12:30:00 | fc1407f5-04ca-4f4e-ad01-f72063736e08 | Avenal | ["fc1407f5-04ca-4f4e-ad01-f72063736e08", "Avenal"] |
This query combines failed user IDs and cities where the request originated, allowing security analysts to detect suspicious patterns or brute force attempts from different regions.
List of related functions#
- array_length: Returns the number of elements in an array.
- array_index_of: Finds the index of an element in an array.
- array_slice: Extracts a subset of elements from an array.
Other query languages#
Splunk SPL users
In SPL, you typically use the mvappend function to concatenate multiple fields or arrays into a single array. In APL, the equivalent is array_concat, which also combines arrays but requires you to specify each array as a parameter.
Splunk example
| eval combined_array = mvappend(array1, array2, array3)APL equivalent
| extend combined_array = array_concat(array1, array2, array3)ANSI SQL users
ANSI SQL doesn’t natively support an array concatenation function across different arrays. Instead, you typically use UNION to combine results from multiple arrays or collections. In APL, array_concat allows you to directly concatenate multiple arrays, providing a more straightforward approach.
SQL example
SELECT array1 UNION ALL array2 UNION ALL array3APL equivalent
| extend combined_array = array_concat(array1, array2, array3)