Use stats with eval expressions and functions (2024)

You can embed eval expressions and functions within any of the stats functions. This is a shorthand method for creating a search without using the eval command separately from the stats command.

For example, the following search uses the eval command to filter for a specific error code. Then the stats function is used to count the distinct IP addresses.

status=* | eval dc_ip_errors=if(status=404,clientip,NULL()) | stats dc(dc_ip_errors)

As an alternative, you can embed an eval expression using eval functions in a stats function directly to return the same results. For example:

status=* | stats dc(eval(if(status=404, clientip, NULL()))) AS dc_ip_errors

Use eval expressions to count the different types of requests against each Web server

This example uses the sample data from the Search Tutorial but should work with any format of Apache web access log. To try this example on your own Splunk instance, you must download the sample data and follow the instructions to get the tutorial data into Splunk. Use the time range All time when you run the search.

Run the following search to use the stats command to determine the number of different page requests, GET and POST, that occurred for each Web server.

sourcetype=access_* | stats count(eval(method="GET")) AS GET, count(eval(method="POST")) AS POST BY host

This example uses eval expressions to specify the different field values for the stats command to count.

  • The first clause uses the count() function to count the Web access events that contain the method field value GET. Then, using the AS keyword, the field that represents these results is renamed GET.
  • The second clause does the same for POST events.
  • The counts of both types of events are then separated by the web server, using the BY clause with the host field.

The results appear on the Statistics tab and look something like this:

hostGETPOST
www184315197
www280974815
www383384654

Use eval expressions to categorize and count fields

This example uses sample email data. You should be able to run this search on any email data by replacing the sourcetype=cisco:esa with the sourcetype value and the mailfrom field with email address field name in your data. For example, the email might be To, From, or Cc).

Find out how much of the email in your organization comes from .com, .net, .org or other top level domains.

The eval command in this search contains two expressions, separated by a comma.

sourcetype="cisco:esa" mailfrom=* | eval accountname=split(mailfrom,"@"), from_domain=mvindex(accountname,-1) | stats count(eval(match(from_domain, "[^\n\r\s]+\.com"))) AS ".com", count(eval(match(from_domain, "[^\n\r\s]+\.net"))) AS ".net", count(eval(match(from_domain, "[^\n\r\s]+\.org"))) AS ".org", count(eval(NOT match(from_domain, "[^\n\r\s]+\.(com|net|org)"))) AS "other"

  • The first part of this search uses the eval command to break up the email address in the mailfrom field. The from_domain is defined as the portion of the mailfrom field after the @ symbol.
    • The split() function is used to break the mailfrom field into a multivalue field called accountname. The first value of accountname is everything before the "@" symbol, and the second value is everything after.
    • The mvindex() function is used to set from_domain to the second value in the multivalue field accountname.
  • The results are then piped into the stats command. The stats count() function is used to count the results of the eval expression.
  • Theeval eexpression uses the match() function to compare the from_domain to a regular expression that looks for the different suffixes in the domain. If the value of from_domain matches the regular expression, the count is updated for each suffix, .com, .net, and .org. Other domain suffixes are counted as other.

The results appear on the Statistics tab and look something like this:

.com.net.orgother
4246989003543

See also

Commands
eval command in the Search Reference
Related information
Statistical and charting functions in the Search Reference
Evaluation functions in the Search Reference
About evaluating and manipulating fields

Last modified on 11 May, 2020

Use the stats command and functionsAdd sparklines to search results

This documentation applies to the following versions of Splunk® Enterprise: 7.0.0, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.1.10, 7.2.0, 7.2.1, 7.2.2, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.2.10, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.3.9, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.10, 8.1.0, 7.2.3, 8.0.8, 7.0.1, 8.0.7, 8.1.2, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.11, 8.1.12, 8.1.13, 8.1.14, 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 8.2.10, 8.2.11, 8.2.12, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.10, 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.2.0, 9.2.1, 9.2.2, 8.0.9, 8.1.1, 8.1.10

Use stats with eval expressions and functions (2024)

FAQs

What is the difference between stats and eval? ›

Difference between stats and eval commands

The command Stats measures statistics in your events based on fields. The eval command uses existing fields and an optional expression to construct new fields in your events.

What is the use of stats in Splunk? ›

The SPL2 stats command calculates aggregate statistics, such as average, count, and sum, over the incoming search results set. This is similar to SQL aggregation. If the stats command is used without a BY clause, only one row is returned, which is the aggregation over the entire incoming result set.

What does the eval function do in Splunk? ›

The eval command evaluates mathematical, string, and boolean expressions. You can chain multiple eval expressions in one search using a comma to separate subsequent expressions. The search processes multiple eval expressions left-to-right and lets you reference previously evaluated fields in subsequent expressions.

What are the common functions used with stats command? ›

Common statistical functions in Excel: Some of the most commonly used statistical functions in Excel include the AVERAGE function, MAX, MIN, SUM, COUNT, and STDEV.

How does eval function work? ›

You can use the Eval function to evaluate an expression that results in a text string or a numeric value. You can construct a string and then pass it to the Eval function as if the string were an actual expression. The Eval function evaluates the string expression and returns its value.

How is statistics used in evaluation? ›

Statistical methods are essential in monitoring and evaluation (M&E) to analyze program performance and impact. They provide a rigorous and objective approach to data analysis and can help identify patterns, trends, and associations between program inputs, activities, outputs, and outcomes.

What do you use stats for? ›

They're used to conduct research, evaluate outcomes, develop critical thinking, and make informed decisions. Statistics can be used to inquire about almost any field of study to investigate why things happen, when they occur, and whether reoccurrence is predictable.

What is stat tool used for? ›

The Statistical Training needs Assessment Tool, also known as STAT, is a tool developed for National Statistical Offices (NSO) to assess and analyze skills gaps of staff and strategically decide on how to prioritize and meet their training needs by using different types of informal and formal learning approaches.

What is the difference between stats and eventstats in Splunk? ›

Eventstats calculates a statistical result same as stats command only difference is it does not create statistical results, it aggregates them to the original raw data. Streamstats command uses events before the current event to compute the aggregate statistics that are applied to each event.

Is function better than eval? ›

Again, eval() is much slower than Function() . However, eval() is also slower than the alternatives since it has to invoke the JavaScript interpreter, while many other constructs are optimized by modern JS engines. Additionally, modern JavaScript interpreters convert JavaScript to machine code.

When should I use eval? ›

It can be useful in certain situations, such as: Dynamic code evaluation: eval() can be used to evaluate code dynamically, meaning that the code is generated and executed at runtime. This can be useful when you need to generate code based on user input or other dynamic factors.

Why do we need eval? ›

It means, using eval function you can dynamically create python code and execute it. This can be useful in scenarios where you need to generate code based on user input or generate code for use in other applications. Despite its advantages, eval can also be a significant security risk if used improperly.

How to use the stats command in Splunk? ›

Getting Started with the Splunk tstats Command
  1. Aggregation Functions: Choose an appropriate aggregation function, such as count, sum, avg, min, or max, based on your analysis needs.
  2. Fields and Time Field: Specify the fields you want to analyze and the time field over which you want to aggregate data.
Sep 30, 2023

What are two statistical functions examples? ›

Statistical functions (reference)
FunctionDescription
COUNTA functionCounts how many values are in the list of arguments
COUNTBLANK functionCounts the number of blank cells within a range
COUNTIF functionCounts the number of cells within a range that meet the given criteria
108 more rows

What is command in stats? ›

Use this command to provide summary statistics, optionally grouped by a field. The output for this query includes one field for each of the fields specified in the query, along with one field for each aggregation.

What is the difference between stats and statistics? ›

A statistic is the descriptor of a set of sample data. Statistics is the broader concept of the process of designing, comparing, interpreting, and analyzing data.

What is eval data? ›

The eval statement is used to evaluate the value of a variable or a column within a record, and if necessary, convert it into another data type. In stitchers, eval statements are used in combination with OQL to extract values from records in one database and insert those values into another database.

How do you evaluate stats? ›

Factors to Consider When Evaluating Statistics
  1. Who collected it?
  2. Was it an individual or organization or agency?
  3. The data source and the reporter or citer are not always the same. ...
  4. If the data are repackaged, is there proper documentation to lead you to the primary source?
Feb 5, 2024

What is the difference between Prob and stats? ›

Probability And Statistics are the two important concepts in Maths. Probability is all about chance. Whereas statistics is more about how we handle various data using different techniques. It helps to represent complicated data in a very easy and understandable way.

References

Top Articles
Latest Posts
Article information

Author: Carlyn Walter

Last Updated:

Views: 6721

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Carlyn Walter

Birthday: 1996-01-03

Address: Suite 452 40815 Denyse Extensions, Sengermouth, OR 42374

Phone: +8501809515404

Job: Manufacturing Technician

Hobby: Table tennis, Archery, Vacation, Metal detecting, Yo-yoing, Crocheting, Creative writing

Introduction: My name is Carlyn Walter, I am a lively, glamorous, healthy, clean, powerful, calm, combative person who loves writing and wants to share my knowledge and understanding with you.