Skip to content

Commit 0b647ab

Browse files
authored
Merge branch 'main' into JV0812-patch-3
2 parents 1d8ab6e + ab6031f commit 0b647ab

File tree

5 files changed

+208
-4
lines changed

5 files changed

+208
-4
lines changed

cid-redirects.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@
438438
"/05Search/Get-Started-with-Search/Visualizations/Group-By-Operator": "/docs/search/search-query-language/search-operators",
439439
"/05Search/Live-Tail": "/docs/search/live-tail",
440440
"/05Search/Live-Tail/About-Live-Tail": "/docs/search/live-tail/about-live-tail",
441+
"/Search": "/docs/search",
441442
"/Search/Anomaly_Detection": "/docs/alerts/monitors/create-monitor",
442443
"/Search/Live-Tail": "/docs/search/live-tail/about-live-tail",
443444
"/Search/Live-Tail/About-Live-Tail": "/docs/search/live-tail/about-live-tail",
@@ -489,6 +490,7 @@
489490
"/05Search/Search-Query-Language/01-Parse-Operators/04-Parse-Keyvalue-Formatted-Logs": "/docs/search/search-query-language/parse-operators/parse-keyvalue-formatted-logs",
490491
"/05Search/Search-Query-Language/01-Parse-Operators/05-Parse-CSV-Formatted-Logs": "/docs/search/search-query-language/parse-operators/parse-csv-formatted-logs",
491492
"/05Search/Search-Query-Language/01-Parse-Operators/06-Parse-Delimited-Logs-Using-Split": "/docs/search/search-query-language/parse-operators/parse-delimited-logs-using-split",
493+
"/docs/search/search-query-language/parse-operators/parse-date": "/docs/search/search-query-language/parse-operators/parsedate",
492494
"/05Search/Search-Query-Language/01-Parse-Operators/07-Parse-XML-Formatted-Logs": "/docs/search/search-query-language/parse-operators/parse-xml-formatted-logs",
493495
"/05Search/Search-Query-Language/01-Parse-Operators/Parse-field-option": "/docs/search/search-query-language/parse-operators/parse-field-option",
494496
"/05Search/Search-Query-Language/01-Parse-Operators/Parse-nodrop-option": "/docs/search/search-query-language/parse-operators/parse-nodrop-option",
@@ -3039,6 +3041,7 @@
30393041
"/Knowledge_Base/Parsing/Using_line_breaks_as_an_anchor_within_parse": "/docs/search/search-query-language/parse-operators/parse-predictable-patterns-using-an-anchor",
30403042
"/Knowledge_Base/Search": "/docs/search",
30413043
"/Knowledge_Base/Search/How_to_Prevent_your_Scheduled_Search_from_Timing_Out": "/docs/alerts/scheduled-searches/faq",
3044+
"/Limited_Availability": "/docs/manage/manage-subscription/beta-opt-in",
30423045
"/Limited_Availability/Lookup_Tables": "/docs/search/search-query-language/search-operators/lookupcontains",
30433046
"/Limited_Availability/Lookup_Tables/lookupContains_Operator": "/docs/search/search-query-language/search-operators/lookupcontains",
30443047
"/Manage": "/docs/manage",
@@ -3381,6 +3384,7 @@
33813384
"/Metrics/Metric-Queries-and-Alerts/10Share_a_Metric_Query": "/docs/metrics/metrics-queries/share-metric-query",
33823385
"/Metrics/Metric-Queries-and-Alerts/11Metrics-Queries": "/docs/metrics/metrics-queries",
33833386
"/Metrics/Metrics_Transformation_Rules": "/docs/metrics/metrics-transformation-rules",
3387+
"/Metrics/Understand_and_Manage_Metric_Volume/Blacklisted_Metrics_Sources": "/docs/metrics/manage-metric-volume/disabled-metrics-sources",
33843388
"/Metrics/Understand_and_Manage_Metric_Volume/Disabled_Metrics_Sources": "/docs/metrics/manage-metric-volume/disabled-metrics-sources",
33853389
"/Metrics/Understand_and_Manage_Metric_Volume": "/docs/metrics/manage-metric-volume",
33863390
"/Metrics/Understand_and_Manage_Metric_Volume/Data_Limits_for_Metrics": "/docs/metrics/manage-metric-volume",
@@ -3577,6 +3581,7 @@
35773581
"/Search/Search_Cheat_Sheets/Search_Operators_Cheat_Sheet": "/docs/search/search-cheat-sheets",
35783582
"/Search/Search_Job_API/Search_Job_API": "/docs/api/search-job",
35793583
"/Search/Search_Optimization": "/docs/search/optimize-search-performance",
3584+
"/Search/Search_Optimization/Scheduled_Views": "/docs/manage/scheduled-views",
35803585
"/Solutions/AWS_Observability_Solution": "/docs/observability",
35813586
"/Send_Data/Sources/03Use_JSON_to_Configure_Sources": "/docs/send-data/use-json-configure-sources",
35823587
"/Send_Data/Sources/03Use_JSON_to_Configure_Sources/JSON_Parameters_for_Hosted_Sources": "/docs/send-data/use-json-configure-sources/json-parameters-hosted-sources",
@@ -3835,6 +3840,7 @@
38353840
"/Beta/Cloud-to-Cloud_Integration_Framework/Workday_Source": "/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/workday-source",
38363841
"/Beta/Dashboard-Data-API": "/docs/api/dashboard",
38373842
"/Beta/Dashboard_(New)": "/docs/dashboards",
3843+
"/Beta/Dashboard_(Beta)/01Sumo_Logic's_New_Dashboard_(Beta)": "/docs/dashboards",
38383844
"/Beta/Dashboard_(Beta)/Create_a_New_Dashboard_(Beta)": "/docs/dashboards",
38393845
"/Beta/Fields": "/docs/manage/fields",
38403846
"/Beta/Grant_Access_to_Data_in_Audit_Indexes": "/docs/manage/users-roles/roles/create-manage-roles",
@@ -3973,6 +3979,7 @@
39733979
"/Send_Data/Data_Types/Host_Metrics/02Install_the_Host_Metrics_App": "/docs/integrations/hosts-operating-systems/host-metrics",
39743980
"/Send_Data/Data_Types/Linux/Collect_Logs_for_Linux": "/docs/integrations/hosts-operating-systems/linux",
39753981
"/Send_Data/Data_Types/Observable_Networks/Observable_Networks_App_Dashboard_and_Searches": "/docs/integrations/security-threat-detection/observable-networks",
3982+
"/Send_Data/Data_Types/OneLogin/Collect_Logs_for_OneLogin": "/docs/integrations/saml/onelogin",
39763983
"/Send_Data/Data_Types/PagerDuty/PagerDuty_App_Dashboards": "/docs/integrations/saas-cloud/pagerduty-v3",
39773984
"/Send_Data/Data_Types/Threat_Intel_for_AWS/Threat_Intel_for_AWS_App_Dashboard": "/docs/integrations/amazon-aws/threat-intel",
39783985
"/Send_Data/Installed_Collectors": "/docs/send-data/installed-collectors",
@@ -4038,6 +4045,7 @@
40384045
"/Send-Data/Applications-and-Other-Data-Sources/Okta/Collect-Okta-Logs": "/docs/integrations/saml/okta",
40394046
"/Send-Data/Applications-and-Other-Data-Sources/Oracle/00Collect_Logs_for_Oracle": "/docs/send-data/collect-from-other-data-sources/collect-logs-oracle-cloud-infrastructure",
40404047
"/Send-Data/Applications-and-Other-Data-Sources/Palo_Alto_Networks_8/Collect_Logs_for_Palo_Alto_Networks_8": "/docs/integrations/security-threat-detection/palo-alto-networks-9",
4048+
"/Send-Data/Applications-and-Other-Data-Sources/Puppet": "/docs/integrations/app-development/puppet",
40414049
"/Send-Data/Applications-and-Other-Data-Sources/Threat-Intel-Quick-Analysis": "/docs/integrations/security-threat-detection/threat-intel-quick-analysis",
40424050
"/Send-Data/Applications-and-Other-Data-Sources/Threat-Intel-Quick-Analysis/Threat-Intel-FAQ": "/docs/integrations/security-threat-detection/threat-intel-quick-analysis",
40434051
"/Send-Data/Applications-and-Other-Data-Types/Okta": "/docs/integrations/saml/okta",
@@ -4210,6 +4218,7 @@
42104218
"/docs/dashboards/edit-dashboards": "/docs/dashboards",
42114219
"/docs/dashboards/chart-panel-types/numerical-single-value-charts": "/docs/dashboards/panels/single-value-charts",
42124220
"/docs/dashboards/edit-dashboards/manage-axis": "/docs/dashboards",
4221+
"/docs/dashboards/edit-dashboards/manage-charts": "/docs/dashboards/panels",
42134222
"/docs/dashboards/edit-dashboards/manage-dashboards": "/docs/dashboards",
42144223
"/docs/dashboards/chart-panel-types/box-plot-charts": "/docs/dashboards/panels/box-plot-charts",
42154224
"/docs/dashboards/chart-panel-types/line-charts": "/docs/dashboards/panels/line-charts",
@@ -4308,6 +4317,7 @@
43084317
"/docs/manage/partitions/flex/flex-pricing-faqs": "/docs/manage/partitions/flex/faq",
43094318
"/docs/manage/partitions/flex/flex-pricing-faq": "/docs/manage/partitions/flex/faq",
43104319
"/docs/platform-services/automation-service/app-central/integrations/exana-open-dns": "/docs/platform-services/automation-service/app-central/integrations",
4320+
"/docs/platform-services/automation-service/app-central/integrations/malwarebytes-oneview": "/docs/platform-services/automation-service/app-central/integrations/malwarebytes-nebula",
43114321
"/docs/platform-services/automation-service/app-central/integrations/snowflake": "/docs/platform-services/automation-service/app-central/integrations",
43124322
"/docs/integrations/security-threat-detection/palo-alto-networks-6": "/docs/integrations/security-threat-detection/palo-alto-networks-9",
43134323
"/docs/integrations/security-threat-detection/palo-alto-networks-8":"/docs/integrations/security-threat-detection/palo-alto-networks-9",

docs/manage/ingestion-volume/log-ingestion.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Log data may not be kept when sent via HTTP Sources or Cloud Syslog Sources, as
2929
* Sumo Logic accounts can be upgraded at any time to allow for additional quota. Contact [Sumo Logic Sales](mailto:[email protected]) to customize your account to meet your organization's needs.
3030

3131
:::important
32-
Compressed files are decompressed before they are ingested, so they are ingested at the decompressed file size rate.
32+
[Compressed files](/docs/send-data/hosted-collectors/http-source/logs-metrics/#compressed-data) are decompressed before they are ingested, so they are ingested at the decompressed file size rate.
3333
:::
3434

3535
## Log Throttling

docs/search/optimize-search-performance.md

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,191 @@ Here's a quick look at how to choose the right indexed search optimization tool.
7070
As data enters Sumo Logic, it is first routed to any Partitions for indexing. It is then checked against Scheduled Views, and any data that matches the Scheduled Views is indexed.
7171

7272
Data can be in both a Partition and a Scheduled View because the two tools are used differently (and are indexed separately). Although Partitions are indexed first, the process does not slow the indexing of Scheduled Views.
73+
74+
## Additional methods to optimize Search performance
75+
76+
### Use the smallest time range
77+
78+
Always set the search time range to the minimum duration required for your use case. This reduces the data volume and improves the query efficiency. When working with long time ranges, start by building and testing your search on a shorter time range. Once the search is finalized and validated, extend it to cover the entire period needed for your analysis.
79+
80+
### Use fields extracted by FERs
81+
82+
Instead of relying on the `where` operator, filter the data using fields that are already extracted through the Field Extraction Rules (FERs) in the source expression. This approach is more efficient and improves query performance.
83+
84+
**Not recommended approach:**
85+
86+
```
87+
_sourceCategory=foo
88+
| where field_a="value_a"
89+
```
90+
91+
**Recommended approach:**
92+
93+
```
94+
sourceCategory=foo and field_a=value_a
95+
```
96+
97+
### Move terms from parse statement to source expression
98+
99+
Adding the parsing terms in the source expression will help you enhance the search performance. A parse statement without `nodrop` drops the logs that could not parse the desired field. For example, `parse "completed * action" as actionName` will remove logs that do not have **completed** and **action** terms.
100+
101+
**Not recommended approach:**
102+
103+
```
104+
_sourceCategory=Prod/User/Eventlog
105+
| parse "completed * action" as actionName
106+
| count by actionName
107+
```
108+
109+
**Recommended approach:**
110+
111+
```
112+
_sourceCategory=Prod/User/Eventlog completed action
113+
| parse "completed * action" as actionName
114+
| count by actionName
115+
```
116+
117+
### Filter data before aggregation
118+
119+
While filtering the date, reduce the result set to the smallest possible size before performing aggregate operations such as sum, min, max, and average. Also, use subquery in source expression instead of using `if` or `where` search operators.
120+
121+
**Not recommended approach:**
122+
123+
```
124+
_sourceCategory=Prod/User/Eventlog
125+
| parse "userName: *, " as user
126+
| count by user
127+
| where user="john"
128+
```
129+
130+
**Recommended approach:**
131+
132+
```
133+
_sourceCategory=Prod/User/Eventlog userName
134+
| parse "userName: *, " as user
135+
| where user="john"
136+
| count by user
137+
```
138+
139+
### Remove redundant operators
140+
141+
Remove the search operators in the query that are not required for the desired results.
142+
143+
For example, let’s say you have a `sort` operator before an aggregation, but this sorting does not make any difference to the aggregated results.
144+
145+
**Not recommended approach:**
146+
147+
```
148+
_sourceCategory=Prod/User/Eventlog
149+
| parse "userName: *, " as user
150+
| parse "evenName: *, " as event
151+
| count by user
152+
```
153+
154+
**Recommended approach:**
155+
156+
```
157+
_sourceCategory=Prod/User/Eventlog
158+
| parse "userName: *, " as user
159+
| count by user
160+
```
161+
162+
### Merge operators
163+
164+
If the same operators are used multiple times in different levels of query, if possible, try to merge these similar operators. Also, do not use the same operator multiple times to get the same value. This helps in reducing the number of passes performed on the data thereby improving the search performance.
165+
166+
**Example 1:**
167+
168+
**Not recommended approach:**
169+
170+
```
171+
_sourceCategory=Prod/User/Eventlog
172+
| parse "completed * action" as actionName
173+
| parse "action in * ms" as duration
174+
| pct(duration, 95) by actionName
175+
```
176+
177+
**Recommended approach:**
178+
179+
```
180+
_sourceCategory=Prod/User/Eventlog
181+
| parse "completed * action in * ms" as actionName, duration
182+
| pct(duration, 95) by actionName
183+
```
184+
185+
**Example 2:**
186+
187+
**Not recommended approach:**
188+
189+
```
190+
_sourceCategory=Prod/User/Eventlog
191+
| parse "completed * action" as actionName
192+
| where toLowerCase(actionName) = "logIn” or toLowerCase(actionName) matches "abc*” or toLowerCase(actionName) contains "xyz"
193+
```
194+
195+
**Recommended approach:**
196+
197+
```
198+
_sourceCategory=Prod/User/Eventlog
199+
| parse "completed * action" as actionName
200+
| toLowerCase(actionName) as actionNameLowered
201+
| where actionNameLowered = "logIn” or actionNameLowered matches "abc*” or actionNameLowered contains "xyz”
202+
```
203+
204+
### Use lookup on the lowest possible dataset
205+
206+
Minimize the data processed by the `lookup` operator in the query, as lookup is an expensive operation. It can be done in two ways:
207+
208+
- Use the lookup as late as possible in the query assuming that clauses before lookup are doing additional data filtering.
209+
- Move the lookup after an aggregation to drastically reduce the data processed by lookup, as aggregated data is generally far less than non-aggregated data.
210+
211+
**Not recommended approach:**
212+
213+
```
214+
_sourceCategory=Prod/User/Eventlog
215+
| parse "completed * action in * ms" as actionName, duration
216+
| lookup actionType from path://"/Library/Users/[email protected]/actionTypes" on actionName
217+
| where actionName in ("login”, "logout”)
218+
| count by actionName, actionType
219+
```
220+
221+
**Recommended approach (Option 1):**
222+
223+
```
224+
_sourceCategory=Prod/User/Eventlog
225+
| parse "completed * action in * ms" as actionName, duration
226+
| where actionName in ("login”, "logout”)
227+
| count by actionName
228+
| lookup actionType from path://"/Library/Users/[email protected]/actionTypes" on actionName
229+
```
230+
231+
**Recommended approach (Option 2):**
232+
233+
```
234+
_sourceCategory=Prod/User/Eventlog
235+
| parse "completed * action in * ms" as actionName, duration
236+
| where actionName in ("login”, "logout”)
237+
| lookup actionType from path://"/Library/Users/[email protected]/actionTypes" on actionName
238+
| count by actionName, actionType
239+
```
240+
241+
### Avoid multiple parse multi statements
242+
243+
A parse `multi` statement causes a single log to produce multiple logs in the results. But if a parse `multi` statement is followed by more parse `multi` statements, it can lead to data explosion and the query may never finish. Even if the query works the results may not be as expected.
244+
245+
For example, consider the below query where the assumption is that a single log line contains multiple users and multiple event names.
246+
247+
```
248+
_sourceCategory=Prod/User/Eventlog
249+
| parse regex "userName: (?<user>[a-z-A-Z]+), " multi
250+
| parse regex "eventName: (?<event>[a-z-A-Z]+), " multi
251+
```
252+
253+
But if you write the query like that, it will generate a result for every combination of `userName` and `eventName` values. Now suppose you want to count by `eventName`, it will not give you the desired result, since a single `eventName` has been duplicated for every `userName` in the same log. So, the better query would be:
254+
255+
```
256+
_sourceCategory=Prod/User/Eventlog
257+
| parse regex "userName: (?<user>[a-z-A-Z]+), eventName: (?<event>[a-z-A-Z]+), " multi
258+
```
259+
260+

docs/send-data/collector-faq.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,9 +419,15 @@ This article describes the assumptions that Sumo makes about customer data, tips
419419

420420
See [using _format for troubleshooting](/docs/send-data/reference-information/time-reference.md) timestamps.
421421

422-
#### Assumption: Data is less than 365 days old
422+
#### Assumption: Data is less than 30 days but within 365 days
423423

424-
Sumo Logic assumes that all log message times fall within a window of -1 year through +2 days compared to the current time. Any log messages with a parsed timestamp outside of that window is automatically re-stamped with the current time.
424+
* To ingest historical data older than 30 days but within 365 days, you must specify a `timestamp` field using a regex locator and a valid date format.
425+
426+
#### Assumption: Data is older than 365 days
427+
428+
Sumo Logic assumes that all log message times fall within a window of -1 year through +2 days compared to the current time. Any log messages with a parsed timestamp outside of that window are automatically re-stamped with the current time.
429+
* Data older than 365 days can still be ingested. However, even if a custom timestamp is provided, it will be autocorrected to the current time unless technical support disables this function at the organization level.
430+
* To ingest data older than 365 days with the original timestamp intact, you'll need to contact [Support](https://support.sumologic.com/support/s) to disable the autocorrection function at the org level.
425431
426432
#### Assumption: Data from a source will have similar timestamps
427433

docs/send-data/reference-information/time-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ If your log messages from a Source contain multiple timestamps, timestamps in un
3333

3434
The Collector assumes that all log messages coming from a particular Source will have timestamps that are close together. If a message comes through that appears to be more than one day earlier or later than recent messages from that Source it will be auto-corrected to match the current time. You can stop this auto-correction by explicitly configuring a custom timestamp format on your Source.
3535

36-
The Collector also assumes that all log messages coming from a particular Source will have timestamps that are within a window of -1 year through +2 days compared to the current time. Any log message with a parsed timestamp outside of that window is automatically re-stamped with the current time. You must contact [Sumo Logic Support](https://support.sumologic.com/) to adjust this auto-correction behavior. See [How to ingest old or historical data](/docs/send-data/collector-faq#how-to-ingest-old-or-historical-data) for further details.
36+
The Collector also assumes that all log messages coming from a particular Source will have timestamps that are within a window of -1 year through +2 days compared to the current time. Any log messages with a timestamp older than 30 days is automatically set to the current time. You must contact [Sumo Logic Support](https://support.sumologic.com/) to adjust this auto-correction behavior. See [How to ingest old or historical data](/docs/send-data/collector-faq#how-to-ingest-old-or-historical-data) for further details.
3737

3838
### Automated timestamp parsing
3939

0 commit comments

Comments
 (0)