All Splunk exams

Free Splunk Core Certified Advanced Power User practice test: 30 questions with answers

30 original questions for Splunk Core Certified Advanced Power User, drawn from every topic area. Answer each one to see whether you got it right and why. No sign-up.

Free questions
30
Full bank
112 questions
Real exam
70 questions, 60 min

Splunk Core Certified Advanced Power User exam guide: topics, cost and format

All 30 Splunk Core Certified Advanced Power User questions with answers

The same questions as the test above, grouped by exam topic. Open any question to see the answer and explanation.

Using Acceleration Options: Reports, Summary Indexing, Data Models and tsidx (3 questions)

  1. Question 1

    A team runs the same transforming report every day over 90 days of data and wants the dashboard results to load faster. They want Splunk to build and maintain the summaries automatically, without a separate summary index. Which option fits?

    1. AReport acceleration, which builds summaries for one report
    2. BSummary indexing, which stores results in a separate index
    3. CData model acceleration, which summarizes data model objects
    4. DNo acceleration, which reruns the full search on each load
    Show answer and explanation
    Correct answer: A

    Report acceleration lets Splunk build and maintain summaries for an eligible transforming report automatically, which matches the requirement. Summary indexing writes results to a separate index, data model acceleration serves data model objects rather than one report, and rerunning the full search gives no speedup.

  2. Question 2

    An administrator needs a count of events per host across a long time range, using only the metadata stored for indexed fields in tsidx files rather than reading raw event text. Which command should be used?

    1. Atstats, which queries tsidx files for indexed fields
    2. Bstats, which aggregates events after reading their raw data
    3. Ctimechart, which groups results into time buckets
    4. Ddedup, which removes repeated events based on field values
    Show answer and explanation
    Correct answer: A

    tstats reads the tsidx files that index fields, so it can count results without scanning raw event text, which is much faster for indexed fields. stats needs the raw events, timechart is for time-bucketed output, and dedup removes repeated events rather than counting them.

  3. Question 3

    A compliance team must keep three years of aggregated firewall counts, while raw events are deleted after 90 days by the index retention setting. Which approach keeps the aggregates available after the raw events expire?

    1. AReport acceleration, which keeps summaries tied to one saved report
    2. BSummary indexing, which stores results in a separate index
    3. CData model acceleration, which keeps tsidx summaries of data model objects
    4. DSearch job caching, which keeps recent search job results for a short time
    Show answer and explanation
    Correct answer: B

    Summary indexing writes precomputed results into a separate summary index that has its own retention, so aggregates survive after raw events expire. Report and data model acceleration summaries are tied to the report or data model, and job caching keeps results only briefly.

Using Search Efficiently and Search Tuning (3 questions)

  1. Question 4

    A search needs the number of HTTP 500 responses per host across a month of web data. Which search is the most efficient way to produce this count?

    1. Aindex=web status=500 | stats count by host
    2. Bindex=web | stats count by host, status | search status=500
    3. Cindex=web | dedup host | stats count by host | search status=500
    4. Dindex=web | fields host status | stats count by host
    Show answer and explanation
    Correct answer: A

    Putting the status filter in the base search lets Splunk discard non-500 events before the transforming command runs, which is the most efficient ordering. Filtering after stats or dedup processes every event first, and the field-list version never filters at all, so it counts every response.

  2. Question 5

    A dashboard search takes several minutes, and the team does not know whether the time goes to the index scan, a lookup or a transforming command. Which tool shows the execution cost of each part of the search?

    1. AField Extractor, which creates field extractions from sample events
    2. BLookup definition editor, which edits lookup table settings
    3. CJob inspector, which reports execution cost for the job
    4. DData model editor, which defines objects and their constraints
    Show answer and explanation
    Correct answer: C

    The job inspector shows execution costs and timing for a search job, which helps locate the slow part. The lookup definition editor, Field Extractor and data model editor each manage a different knowledge object and show no runtime breakdown of a search.

  3. Question 6

    Which three practices help a search run more efficiently? (Choose three.)

    1. ASpecify the index and a narrow time range in the first clause
    2. BPlace filtering commands before transforming commands such as stats
    3. CUse a leading wildcard such as *error* in the base search
    4. DKeep only the needed fields early with the fields command
    5. ERun sort on all events before any filtering takes place
    Show answer and explanation
    Correct answer: A, B, D

    Specifying the index and a narrow time range limits the data that is read, filtering before transforming commands reduces the events they process, and the fields command limits what moves through the pipeline. Leading wildcards prevent efficient term lookups, and sorting before filtering handles every event for no benefit.

Working with Multivalued Fields (3 questions)

  1. Question 7

    Which two statements about makemv and mvexpand are correct? (Choose two.)

    1. Amakemv turns a delimited string in one field into a multivalue field
    2. Bmvexpand creates one result row for each value of a multivalue field
    3. Cmvexpand joins all values of a multivalue field into one string
    4. Dmakemv requires the input field to already be multivalue before it runs
    5. Emvexpand works on plain single-value text fields without any preparation
    Show answer and explanation
    Correct answer: A, B

    makemv splits a delimited string into the values of a multivalue field, and mvexpand turns each value into its own result row. Joining values into a string is the job of mvjoin, makemv accepts plain strings rather than requiring multivalue input, and mvexpand needs a multivalue field to act on.

  2. Question 8

    Each event has a multivalue field named items. An analyst wants a new field holding the number of values in items for each event. Which eval expression returns this?

    1. Aeval item_count=mvcount(items)
    2. Beval item_count=mvindex(items, -1)
    3. Ceval item_count=mvjoin(items, ",")
    4. Deval item_count=len(items)
    Show answer and explanation
    Correct answer: A

    mvcount returns the number of values in a multivalue field, which is what is needed. mvindex with -1 returns the last value, mvjoin combines the values into one string, and len returns the number of characters in a string rather than the number of values.

  3. Question 9

    A search has a multivalue field named roles that holds several values per event. The analyst wants a count of events for each individual role value. Which search gives one row per role?

    1. Amvcombine roles | stats count by roles
    2. Bmvexpand roles | stats count by roles
    3. Cmakemv roles | stats count by roles
    4. Dfillnull value=none roles | stats count by roles
    Show answer and explanation
    Correct answer: B

    mvexpand turns each role value into its own event, so stats can count each role separately. mvcombine does the opposite and merges rows into multivalue fields, makemv works on delimited strings that are not yet multivalue, and fillnull only replaces empty values.

Manipulating and Filtering Data (3 questions)

  1. Question 10

    An analyst wants to count events in buckets 100 units wide for a numeric response_time field. Which search fragment produces these counts?

    1. Abin span=100 response_time | stats count by response_time
    2. Bfillnull value=0 response_time | stats count by response_time
    3. Cmvexpand response_time | stats count by response_time
    4. Dxyseries response_time count
    Show answer and explanation
    Correct answer: A

    bin with a span argument groups numeric values into fixed-width ranges, so stats can count events per range. fillnull only replaces missing values, mvexpand splits multivalue fields into rows, and xyseries pivots a table and needs separate x, y and value fields.

  2. Question 11

    A stats result has one row for each host and status combination, with a count column. A report needs one row per host and one column per status value. Which command makes this pivot?

    1. Axyseries host status count, which builds one column per status
    2. Buntable host status count, which turns columns back into rows
    3. Ctable host status count, which selects fields without pivoting
    4. Dfieldformat count, which changes how the count is displayed
    Show answer and explanation
    Correct answer: A

    xyseries takes an x field for the rows, a y field whose values become columns, and a value field, which produces the wide layout required. untable does the reverse, table only selects columns without reshaping, and fieldformat changes display formatting only.

  3. Question 12

    Events contain numeric fields cpu_1 through cpu_4, and the analyst wants to add 10 to every one of them in a single step without naming each field. Which search fragment does this?

    1. Aeval cpu_* = cpu_* + 10
    2. Bforeach cpu_* [eval <<FIELD>> = <<FIELD>> + 10]
    3. Caddtotals cpu_* fieldname=cpu_plus
    4. Dmvexpand cpu_* | eval cpu_* = cpu_* + 10
    Show answer and explanation
    Correct answer: B

    foreach runs the enclosed eval once for each field matched by the wildcard, and <<FIELD>> stands for the current field name. eval does not accept wildcards, addtotals creates a new total rather than changing each field, and mvexpand splits multivalue fields into rows.

Using Advanced Transactions (3 questions)

  1. Question 13

    A transaction search groups events by session_id. The analyst also wants sessions that never reached their end event to appear in the results, with closed_txn set to 0 so they can be identified. Which transaction option accomplishes this?

    1. Adedup session_id before transaction, which removes repeated events
    2. Bkeepevicted=false, which drops incomplete transactions from results
    3. Cstartswith=action="login", which only defines the first event
    4. Dkeepevicted=true, which keeps incomplete transactions in the results
    Show answer and explanation
    Correct answer: D

    keepevicted=true makes the transaction command output incomplete transactions, which carry closed_txn=0. The default, keepevicted=false, drops them, startswith only defines where a transaction begins, and dedup removes repeated events rather than keeping incomplete sessions.

  2. Question 14

    An analyst needs the first time, last time and event count for each session_id, but does not need the individual events. Which approach is the most efficient?

    1. Atransaction session_id, which returns every grouped event
    2. Bstats min(_time) as start, max(_time) as end, count by session_id
    3. Ceventstats count by session_id, which keeps each event
    4. Dstreamstats count by session_id, which counts events as they arrive
    Show answer and explanation
    Correct answer: B

    stats returns one summary row per session_id with the start, end and count, and avoids carrying whole event groups through the search, so it is the efficient choice. transaction returns the grouped events themselves, eventstats keeps every event, and streamstats gives running values rather than one summary row per session.

  3. Question 15

    An analyst wants each transaction grouped by user to begin at a login event and finish at a logout event. Which transaction clauses define those boundaries?

    1. Afields and table, which choose which fields are displayed
    2. Bdedup and sort, which remove repeats and order the rows
    3. Cmaxpause and maxevents, which limit the gap and the event count
    4. Dstartswith and endswith, which mark the first and last events
    Show answer and explanation
    Correct answer: D

    startswith and endswith take search strings or expressions that identify the first and last events of each transaction. maxpause and maxevents only set limits on gaps and event counts, fields and table control display, and dedup and sort do not define transaction boundaries.

Exploring Statistical Commands (3 questions)

  1. Question 16

    A search must return one row per host with the number of events, the average response_time, and the count of distinct user values. Which search fragment produces this result?

    1. Atimechart count avg(response_time) dc(user) by host
    2. Bstats count avg(response_time) values(user) by host
    3. Cstats count avg(response_time) dc(user) by host
    4. Deventstats count avg(response_time) dc(user) by host
    Show answer and explanation
    Correct answer: C

    stats aggregates events into one row per host, and dc() returns a distinct count of user values. values() returns the list of unique values instead of a count, timechart groups results by _time rather than by host, and eventstats keeps every event and adds the totals to each one.

  2. Question 17

    An analyst needs a quick overview of every field in a set of events, including each field's count, distinct count and most common values, without writing a separate query per field. Which command fits?

    1. Afieldformat, which changes how values are displayed
    2. Bfieldsummary, which summarizes every field in the results
    3. Cfillnull, which replaces empty field values
    4. Dfields, which keeps or removes fields in the search results
    Show answer and explanation
    Correct answer: B

    fieldsummary computes per-field statistics such as count, distinct count and top values across all or selected fields in one command. fieldformat only changes display formatting, fillnull replaces empty values, and fields only selects which fields remain in the results.

  3. Question 18

    A team needs a cumulative byte total for each host, where every event carries the sum of that host's bytes up to and including the event in arrival order. Which command does this?

    1. Astreamstats sum(bytes) as total by host
    2. Beventstats sum(bytes) as total by host
    3. Cstats sum(bytes) as total by host
    4. Dchart sum(bytes) as total by host
    Show answer and explanation
    Correct answer: A

    streamstats computes running aggregates across events in the order they are processed, so each event receives the total so far for its host. stats returns one summary row per host, eventstats adds the overall total for the whole group rather than a running value, and chart builds a pivot table instead of a per-event field.

Exploring eval Command Functions (2 questions)

  1. Question 19

    A dashboard needs a new field called result that reads "error" when status_code is 400 or higher and "ok" otherwise. Which eval expression produces this?

    1. Aeval result=round(status_code/100)
    2. Beval result=tostring(status_code>=400)
    3. Ceval result=coalesce(status_code,"ok")
    4. Deval result=if(status_code>=400,"error","ok")
    Show answer and explanation
    Correct answer: D

    The if() function returns the second argument when the condition is true and the third otherwise, which gives the required labels. tostring() of a comparison returns the text true or false, coalesce() returns the first non-null value so it never produces error, and round() returns a number rather than a label.

  2. Question 20

    A developer wants to test an eval expression before deploying it to a dashboard, without depending on indexed data. Which command creates a result row with a _time value so the expression can be tested?

    1. Ainputlookup, which reads rows from a lookup file
    2. Bmetadata, which lists sourcetypes, hosts or sources
    3. Ctstats, which reads summaries of indexed data
    4. Dmakeresults, which generates synthetic result rows
    Show answer and explanation
    Correct answer: D

    makeresults creates events at search time without reading any index, and by default it returns one row stamped with the current time. inputlookup reads a lookup file, tstats reads indexed summaries, and metadata lists index-level values, so none of them creates test rows on demand.

Exploring Lookups (2 questions)

  1. Question 21

    A custom app updates rows in a lookup table several times a minute through its REST interface, and searches must read individual rows by key with low latency. Which lookup type fits this requirement?

    1. AA CSV file lookup that the app rewrites on each change
    2. BAn external scripted lookup that runs a command per search
    3. CA KV Store lookup backed by a collection
    4. DA geospatial lookup that matches shapes in a KMZ file
    Show answer and explanation
    Correct answer: C

    KV Store lookups keep records in a collection that apps can update one row at a time through the REST API. A CSV lookup must be rewritten as a whole file, an external lookup runs a script at search time, and a geospatial lookup matches coordinates to polygons rather than serving keyed rows.

  2. Question 22

    A logistics team has a KMZ file that defines delivery zones as polygons. Each event contains latitude and longitude fields, and the team wants every event labeled with the zone that contains its coordinates. Which lookup type should be used?

    1. AAn external lookup that returns the nearest city name
    2. BAn exact-match CSV lookup on the latitude and longitude fields
    3. CA KV Store lookup keyed on the latitude and longitude fields
    4. DA geospatial lookup that uses the KMZ polygons
    Show answer and explanation
    Correct answer: D

    A geospatial lookup tests whether a point falls inside a polygon in a KMZ or KML file, which is what zone labeling needs. Exact-match and KV Store lookups compare values for equality, so a point almost never equals a boundary value, and an external lookup would need custom code instead of the polygon definitions.

Exploring Alerts (2 questions)

  1. Question 23

    An operations team wants the rows from every triggered run of a scheduled alert written to a lookup file so they can be reviewed later in a dashboard. Which alert action should they configure?

    1. ASend email, which delivers results to recipients
    2. BRun a script, which launches a custom program on trigger
    3. COutput results to lookup, which stores triggered rows
    4. DAdd to triggered alerts, which lists the firing in the alerts view
    Show answer and explanation
    Correct answer: C

    The Output results to lookup alert action writes the rows from each triggered run into a lookup, so they can be reviewed later. Send email only notifies recipients, Run a script launches a custom program, and Add to triggered alerts records the firing without saving the result rows.

  2. Question 24

    A security team wants a triggered alert to send its details as an HTTP POST to an external incident tool, so the tool can open a ticket automatically. Which alert action meets this need?

    1. ALog event, which writes a record into a Splunk index
    2. BOutput results to lookup, which saves rows in a lookup file
    3. CSend email, which mails the results to a distribution list
    4. DWebhook, which posts the alert payload to a URL
    Show answer and explanation
    Correct answer: D

    The webhook alert action sends an HTTP POST with the alert details to a URL the team specifies, which is how external tools receive triggers. Log event writes an entry to a Splunk index, Send email notifies people by mail, and Output results to lookup stores rows in a file rather than calling an external service.

Advanced Field Creation and Management (2 questions)

  1. Question 25

    An analyst needs a field extracted from a log line for one ad-hoc search only, and already knows the regular expression to use. Which approach is most suitable?

    1. AA Field Extractor field saved as a persistent extraction
    2. Berex to generate the pattern from sample values
    3. Crex with an explicit named capture group in the search
    4. Dspath to parse structured data in the payload
    Show answer and explanation
    Correct answer: C

    rex applies a regular expression at search time inside the search itself, so it suits a one-off extraction. erex builds an expression from examples the analyst supplies, Field Extractor creates a saved extraction that persists beyond this search, and spath parses JSON or XML rather than running a regex over raw text.

  2. Question 26

    A scheduled search that runs rex over _raw has become slow across several weeks of data. The pattern begins with .* and has no literal text before the capture group. Which change is most likely to improve its performance?

    1. AAdd a literal anchor before the capture and drop the leading .*
    2. BMove the rex command to run after the stats command
    3. CReplace rex with erex on the same _raw field
    4. DSwitch the search mode to verbose so every field is extracted
    Show answer and explanation
    Correct answer: A

    A leading .* makes the regex engine scan the whole event for every candidate match, while a literal anchor lets it skip non-matching events quickly. Moving rex after stats would extract from aggregated rows that no longer hold _raw, erex is not a speed fix, and verbose mode adds work rather than reducing it.

Working with Self-Describing Data and Files (2 questions)

  1. Question 27

    Each event has a field named payload that holds a JSON document. The analyst needs the value at user.id as a new field called user_id. Which command does this?

    1. Amultikv payload, which splits a table into separate events
    2. Bxmlkv payload, which extracts key-value pairs from XML
    3. Cspath input=payload path=user.id output=user_id, for JSON
    4. Dmvexpand payload, which splits multivalue fields into rows
    Show answer and explanation
    Correct answer: C

    spath extracts values from JSON or XML by path, and its input, path and output arguments name the source field, the nested location and the new field. xmlkv only handles XML, multikv splits tabular text into events, and mvexpand works on fields that are already multivalue.

  2. Question 28

    A single event contains a fixed-width table of process rows with a header line, copied from command output. The analyst wants each table row returned as its own event with the column names as fields. Which command is designed for this?

    1. Arex, which extracts fields with a regular expression pattern
    2. Bspath, which reads values from a JSON or XML document
    3. Cmakemv, which converts a delimited string into a multivalue field
    4. Dmultikv, which splits a table in an event into events
    Show answer and explanation
    Correct answer: D

    multikv parses a table embedded in an event, uses the header line for field names, and emits one event per row. spath is for JSON or XML, makemv handles delimited values inside one field, and rex needs a hand-written pattern for each field rather than reading a header row.

Advanced Search Macros (2 questions)

  1. Question 29

    An analyst defines a macro whose search string calls a second macro. When a search uses the outer macro, which statement describes what Splunk does?

    1. AIt ignores the inner macro call, so only the outer string runs
    2. BIt expands the inner macro recursively as the search runs
    3. CIt requires the inner macro to be stored in a separate app first
    4. DIt returns an error, because macros may not reference other macros
    Show answer and explanation
    Correct answer: B

    Splunk supports nested macros, so the inner call is expanded as part of the outer one and the full search runs. The other options describe behavior that does not exist: the inner call is not ignored, no separate app is needed, and macros are allowed to call other macros.

  2. Question 30

    An analyst typed a search that calls a macro with arguments and wants to see the exact search string Splunk will run after the macro is substituted, before running it. Which feature shows this?

    1. AThe job inspector, which shows timing after a job has finished
    2. BThe lookup definition editor, which lists the columns of a lookup
    3. CThe Field Extractor preview, which shows fields extracted from samples
    4. DExpand shortcuts in the search bar (Ctrl+Shift+E), which shows the expanded string
    Show answer and explanation
    Correct answer: D

    The search bar's Expand shortcuts option (Ctrl+Shift+E) previews the search with macros and their arguments substituted before it runs. The job inspector reports on a job after it runs, the Field Extractor preview shows extraction results, and the lookup definition editor lists lookup columns.